| /* |
| * @test /nodynamiccopyright/ |
| * @summary smoke test for functional interface annotation |
| * @compile/fail/ref=FunctionalInterfaceAnno.out -XDrawDiagnostics FunctionalInterfaceAnno.java |
| */ |
| class FunctionalInterfaceAnno { |
| @FunctionalInterface |
| static class A { } //not an interface |
| |
| @FunctionalInterface |
| static abstract class B { } //not an interface |
| |
| @FunctionalInterface |
| enum C { } //not an interface |
| |
| @FunctionalInterface |
| @interface D { } //not an interface |
| |
| @FunctionalInterface |
| interface E { } //no abstracts |
| |
| @FunctionalInterface |
| interface F { default void m() { } } //no abstracts |
| |
| @FunctionalInterface |
| interface G { String toString(); } //no abstracts |
| |
| @FunctionalInterface |
| interface H { void m(); void n(); } //incompatible abstracts |
| |
| @FunctionalInterface |
| interface I { void m(); } //ok |
| } |