/** * @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); }