langtools/src/share/classes/com/sun/tools/javac/comp/Check.java
changeset 15361 01f1828683e6
parent 15360 450af2a9e3c9
child 15374 fb8f6acf09cc
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java	Wed Jan 16 16:27:01 2013 +0000
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java	Wed Jan 16 16:30:11 2013 +0000
@@ -2601,6 +2601,18 @@
             if (!isOverrider(s))
                 log.error(a.pos(), "method.does.not.override.superclass");
         }
+
+        if (a.annotationType.type.tsym == syms.functionalInterfaceType.tsym) {
+            if (s.kind != TYP) {
+                log.error(a.pos(), "bad.functional.intf.anno");
+            } else {
+                try {
+                    types.findDescriptorSymbol((TypeSymbol)s);
+                } catch (Types.FunctionDescriptorLookupError ex) {
+                    log.error(a.pos(), "bad.functional.intf.anno.1", ex.getDiagnostic());
+                }
+            }
+        }
     }
 
     /**