langtools/test/tools/javac/warnings/FallThrough.java
author jjg
Fri, 09 Apr 2010 15:39:39 -0700
changeset 5319 63dc7f367a37
parent 10 06bc494ca11e
child 6150 d055fa8ced62
permissions -rw-r--r--
6942649: add hidden option to identify location and version of javac classes Reviewed-by: darcy

/**
 * @test  /nodynamiccopyright/
 * @bug 4986256
 * @compile/ref=FallThrough.noLint.out -XDstdout                             -XDrawDiagnostics FallThrough.java
 * @compile/ref=FallThrough.lintAll.out -XDstdout         -Xlint:all,-path   -XDrawDiagnostics FallThrough.java
 * @compile/ref=FallThrough.lintFallThrough.out -XDstdout -Xlint:fallthrough -XDrawDiagnostics FallThrough.java
 */

// control: this class should generate a warning
class FallThrough
{
    int m1(int i) {
        switch (i) {
        case 1: i++; case 2: i++;
        }
        return i;
    }
}

// tests: the warnings that would otherwise be generated should all be suppressed
@SuppressWarnings("fallthrough")
class FallThrough1
{
    int m1(int i) {
        switch (i) {
        case 1: i++; case 2: i++;
        }
        return i;
    }
}

class FallThrough2
{
    @SuppressWarnings("fallthrough")
    class Bar {
        int m1(int i) {
            switch (i) {
            case 1: i++; case 2: i++;
            }
            return i;
        }
    }

    @SuppressWarnings("fallthrough")
    void m2(int i) {
        switch (i) {
        case 1: i++; case 2: i++;
        }
    }


    @SuppressWarnings("fallthrough")
    static int x = new FallThrough2() {
            int m1(int i) {
                switch (i) {
                case 1: i++; case 2: i++;
                }
                return i;
            }
        }.m1(0);

}