| /** | |
| * @test /nodynamiccopyright/ | |
| * @bug 8065219 | |
| * @summary Deprecated warning in method reference are missing in some cases. | |
| * @compile/ref=DeprecationSE8Test.noLint.out -XDrawDiagnostics DeprecationSE8Test.java | |
| * @compile/ref=DeprecationSE8Test.out -Xlint:deprecation,-options --release 8 -XDrawDiagnostics DeprecationSE8Test.java | |
| */ | |
| class DeprecationSE8Test { | |
| @FunctionalInterface | |
| interface I { | |
| DeprecationSE8Test meth(); | |
| } | |
| @FunctionalInterface | |
| interface J { | |
| int meth(); | |
| } | |
| @Deprecated | |
| public DeprecationSE8Test() { | |
| } | |
| @Deprecated | |
| public static int foo() { | |
| return 1; | |
| } | |
| // Using deprecated entities from within one's own top level class does not merit warning. | |
| void notBadUsages() { | |
| I i = DeprecationSE8Test::new; | |
| new DeprecationSE8Test(); | |
| J j = DeprecationSE8Test::foo; | |
| foo(); | |
| } | |
| } | |
| class DeprecationSE8_01 { | |
| // Using deprecated entities from outside one's own top level class deserves warning. | |
| void badUsages() { | |
| DeprecationSE8Test.I i = DeprecationSE8Test::new; | |
| new DeprecationSE8Test(); | |
| DeprecationSE8Test.foo(); | |
| DeprecationSE8Test.J j = DeprecationSE8Test::foo; | |
| } | |
| } |