--- a/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java Thu Jun 17 16:28:21 2010 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Symtab.java Fri Jun 18 15:12:04 2010 -0700
@@ -120,6 +120,7 @@
public final Type cloneableType;
public final Type serializableType;
public final Type methodHandleType;
+ public final Type polymorphicSignatureType;
public final Type invokeDynamicType;
public final Type throwableType;
public final Type errorType;
@@ -291,24 +292,6 @@
}
}
- public void synthesizeMHTypeIfMissing(final Type type) {
- final Completer completer = type.tsym.completer;
- if (completer != null) {
- type.tsym.completer = new Completer() {
- public void complete(Symbol sym) throws CompletionFailure {
- try {
- completer.complete(sym);
- } catch (CompletionFailure e) {
- sym.flags_field |= (PUBLIC | ABSTRACT);
- ((ClassType) sym.type).supertype_field = objectType;
- // do not bother to create MH.type if not visibly declared
- // this sym just accumulates invoke(...) methods
- }
- }
- };
- }
- }
-
public void synthesizeBoxTypeIfMissing(final Type type) {
ClassSymbol sym = reader.enterClass(boxedName[type.tag]);
final Completer completer = sym.completer;
@@ -426,6 +409,7 @@
throwableType = enterClass("java.lang.Throwable");
serializableType = enterClass("java.io.Serializable");
methodHandleType = enterClass("java.dyn.MethodHandle");
+ polymorphicSignatureType = enterClass("java.dyn.MethodHandle$PolymorphicSignature");
invokeDynamicType = enterClass("java.dyn.InvokeDynamic");
errorType = enterClass("java.lang.Error");
illegalArgumentExceptionType = enterClass("java.lang.IllegalArgumentException");
@@ -463,8 +447,7 @@
synthesizeEmptyInterfaceIfMissing(cloneableType);
synthesizeEmptyInterfaceIfMissing(serializableType);
- synthesizeMHTypeIfMissing(methodHandleType);
- synthesizeMHTypeIfMissing(invokeDynamicType);
+ synthesizeEmptyInterfaceIfMissing(polymorphicSignatureType);
synthesizeBoxTypeIfMissing(doubleType);
synthesizeBoxTypeIfMissing(floatType);
synthesizeBoxTypeIfMissing(voidType);