| /** | |
| * @test /nodynamiccopyright/ | |
| * @bug 4986256 | |
| * @compile/ref=FallThrough.noLint.out -XDrawDiagnostics FallThrough.java | |
| * @compile/ref=FallThrough.lintAll.out -Xlint:all -XDrawDiagnostics FallThrough.java | |
| * @compile/ref=FallThrough.lintFallThrough.out -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); | |
| } |