--- 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());
+ }
+ }
+ }
}
/**