--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java Wed Apr 17 12:41:33 2019 +0200
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java Wed Apr 17 15:37:20 2019 +0100
@@ -48,6 +48,8 @@
import com.sun.tools.javac.comp.Check;
import com.sun.tools.javac.comp.Enter;
import com.sun.tools.javac.comp.Env;
+import com.sun.tools.javac.comp.LambdaToMethod;
+import com.sun.tools.javac.jvm.ClassFile;
import com.sun.tools.javac.util.*;
import static com.sun.tools.javac.code.BoundKind.*;
@@ -5181,6 +5183,29 @@
}
}
}
+
+ public Type constantType(LoadableConstant c) {
+ switch (c.poolTag()) {
+ case ClassFile.CONSTANT_Class:
+ return syms.classType;
+ case ClassFile.CONSTANT_String:
+ return syms.stringType;
+ case ClassFile.CONSTANT_Integer:
+ return syms.intType;
+ case ClassFile.CONSTANT_Float:
+ return syms.floatType;
+ case ClassFile.CONSTANT_Long:
+ return syms.longType;
+ case ClassFile.CONSTANT_Double:
+ return syms.doubleType;
+ case ClassFile.CONSTANT_MethodHandle:
+ return syms.methodHandleType;
+ case ClassFile.CONSTANT_MethodType:
+ return syms.methodTypeType;
+ default:
+ throw new AssertionError("Not a loadable constant: " + c.poolTag());
+ }
+ }
// </editor-fold>
public void newRound() {