How do I suppress Eclipse 3.5's warnings of dead code

10,584

Solution 1

UPDATE: from Adam's comment:

In Eclipse 3.6 and newer Eclipse versions @SuppressWarnings("unused") can now be used to suppress 'dead code' warnings. See Christopher Stock's answer.

See also Eclipse 4.4(Luna) help for @SuppressWarnings.

Original answer:

All SuppressWarnings values Eclipse 3.5 "knows" are listed in this page. It seems that there is no value for suppressing only the new dead-code detection. But you can use the @SuppressWarnings("all") just before the domain declaration so it will suppress warnings for only that line not for the whole class:

private static final boolean ALLOW_DOMAIN_LITERALS = false;
@SuppressWarnings("all") 
private static final String domain = ALLOW_DOMAIN_LITERALS ? rfc2822Domain : rfc1035DomainName;

Because dead code check is a new one you can also suggest an enchancement in the Eclipse bug database for supporting the ternary operation as well.

Solution 2

Select Ignore in Windows -> Preferences > Java > Compiler > Errors/Warnings under Potential programming problems section

Solution 3

You can disable the 'dead code' warnings using

@SuppressWarnings( "unused" )

See the eclipse documentation for more Information:

http://help.eclipse.org/kepler/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-suppress_warnings.htm

"unused" to suppress warnings relative to unused code and dead code

Greetings

Christopher

Share:
10,584

Related videos on Youtube

Peter Becker
Author by

Peter Becker

Updated on April 17, 2022

Comments

  • Peter Becker
    Peter Becker about 2 years

    I use a class for detecting email addresses which uses static final booleans to configure the matching behavior. Since I upgraded to Eclipse 3.5 I get warnings about dead code, since Eclipse notices that one branch in this can not be reached:

    private static final boolean ALLOW_DOMAIN_LITERALS = false;
    private static final String domain = ALLOW_DOMAIN_LITERALS ? rfc2822Domain : rfc1035DomainName;
    

    Oddly enough it is happy with this:

    private static final String domain;
    static {
        if(ALLOW_DOMAIN_LITERALS) {
            domain = rfc2822Domain;
        } else {
            domain= rfc1035DomainName;
        }
    }
    

    since it seems to recognize the common if(DEBUG) pattern, but the ternary operator doesn't seem to count.

    Since I'd rather not fork the class too much just to keep Eclipse happy, I'd prefer putting an @SuppressWarnings at the top instead of changing the code. Unfortunately I can't find a matching one apart from the brute-force "all". Is there a value just for the dead code detection?

  • Peter Becker
    Peter Becker almost 15 years
    But I generally like the feature, it just fails here. If it would be my own code I'd just change it. You could also disable it on the project level (i.e. enable project-specific compiler settings in the project properties), but I don't even want to do that.
  • Peter Becker
    Peter Becker almost 15 years
    Here is the bugzilla entry: bugs.eclipse.org/bugs/show_bug.cgi?id=282768 Bugzilla certainly lacks both the duplicate search and Wiki syntax StackOverflow offers :-)
  • Peter Becker
    Peter Becker almost 15 years
    I added one for the missing @SuppressWarnings, too: bugs.eclipse.org/bugs/show_bug.cgi?id=282770
  • Casebash
    Casebash about 14 years
    The status of the both requests is now verified fixed
  • Adam
    Adam over 13 years
    It appears that you can not do this for a particular line inside a method. It must be done for a whole method, otherwise a "insert EnumBody" error is shown.
  • Peter Becker
    Peter Becker almost 11 years
    Voted up since it might be useful for someone coming here. The feature didn't exist back then, but it does now (see Bugzilla issues linked in my comments on the accepted answer).
  • Adam Rosenfield
    Adam Rosenfield over 10 years
    @SuppressWarnings("unused") can now be used to suppress this, see Christopher Stock's answer