--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/warnings/DeprecationSE8Test.java Wed Oct 07 16:02:57 2015 +0530
@@ -0,0 +1,47 @@
+/**
+ * @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 -source 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;
+ }
+}