diff -r 88286a36bb34 -r 0baaae675b19 src/share/classes/com/sun/tools/javac/comp/Check.java --- a/src/share/classes/com/sun/tools/javac/comp/Check.java Thu Feb 14 09:43:00 2013 -0800 +++ b/src/share/classes/com/sun/tools/javac/comp/Check.java Fri Feb 15 16:28:07 2013 +0000 @@ -2232,10 +2232,13 @@ void checkFunctionalInterface(JCTree tree, Type funcInterface) { ClassType c = new ClassType(Type.noType, List.nil(), null); ClassSymbol csym = new ClassSymbol(0, names.empty, c, syms.noSymbol); - c.interfaces_field = List.of(funcInterface); + c.interfaces_field = List.of(types.removeWildcards(funcInterface)); c.supertype_field = syms.objectType; c.tsym = csym; csym.members_field = new Scope(csym); + Symbol descSym = types.findDescriptorSymbol(funcInterface.tsym); + Type descType = types.findDescriptorType(funcInterface); + csym.members_field.enter(new MethodSymbol(PUBLIC, descSym.name, descType, csym)); csym.completer = null; checkImplementations(tree, csym, csym); }