< prev index next > src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java
Print this page
import com.sun.tools.javac.code.Symbol.ModuleSymbol;
import com.sun.tools.javac.code.Symbol.PackageSymbol;
import com.sun.tools.javac.code.Symbol.RootPackageSymbol;
import com.sun.tools.javac.code.Symbol.TypeSymbol;
import com.sun.tools.javac.code.Symbol.VarSymbol;
+ import com.sun.tools.javac.code.Type.ArrayType;
import com.sun.tools.javac.code.Type.BottomType;
import com.sun.tools.javac.code.Type.ClassType;
import com.sun.tools.javac.code.Type.ErrorType;
import com.sun.tools.javac.code.Type.JCPrimitiveType;
import com.sun.tools.javac.code.Type.JCVoidType;
// For externalization lint checking
public final Type externalizableType;
public final Type objectInputType;
public final Type objectOutputType;
+ // For code reflection
+ public final Type codeReflectionType;
+ public final Type quotedType;
+ public final Type quotableType;
+ public final Type closureOpType;
+ public final Type lambdaOpType;
+ public final Type opInterpreterType;
+ public final Type opParserType;
+ public final Type opType;
+ public final MethodSymbol opInterpreterInvoke;
+ public final MethodSymbol opParserFromString;
+
/** The symbol representing the length field of an array.
*/
public final VarSymbol lengthVar;
/** The symbol representing the final finalize method on enums */
ioExceptionType = enterClass("java.io.IOException");
objectStreamExceptionType = enterClass("java.io.ObjectStreamException");
externalizableType = enterClass("java.io.Externalizable");
objectInputType = enterClass("java.io.ObjectInput");
objectOutputType = enterClass("java.io.ObjectOutput");
+ // For code reflection
+ codeReflectionType = enterClass("java.lang.runtime.CodeReflection");
+ quotedType = enterClass("java.lang.reflect.code.Quoted");
+ quotableType = enterClass("java.lang.reflect.code.Quotable");
+ closureOpType = enterClass("java.lang.reflect.code.op.CoreOp$ClosureOp");
+ lambdaOpType = enterClass("java.lang.reflect.code.op.CoreOp$LambdaOp");
+ opInterpreterType = enterClass("java.lang.reflect.code.interpreter.Interpreter");
+ opType = enterClass("java.lang.reflect.code.Op");
+ opInterpreterInvoke = new MethodSymbol(PUBLIC | STATIC | VARARGS,
+ names.fromString("invoke"),
+ new MethodType(List.of(opType, new ArrayType(objectType, arrayClass)), objectType,
+ List.nil(), methodClass),
+ opInterpreterType.tsym);
+ opParserType = enterClass("java.lang.reflect.code.parser.OpParser");
+ opParserFromString = new MethodSymbol(PUBLIC | STATIC,
+ names.fromString("fromStringOfFuncOp"),
+ new MethodType(List.of(stringType), opType,
+ List.nil(), methodClass),
+ opParserType.tsym);
synthesizeEmptyInterfaceIfMissing(autoCloseableType);
synthesizeEmptyInterfaceIfMissing(cloneableType);
synthesizeEmptyInterfaceIfMissing(serializableType);
synthesizeEmptyInterfaceIfMissing(lambdaMetafactory);
synthesizeEmptyInterfaceIfMissing(serializedLambdaType);
synthesizeEmptyInterfaceIfMissing(stringConcatFactory);
+ synthesizeEmptyInterfaceIfMissing(quotedType);
+ synthesizeEmptyInterfaceIfMissing(quotableType);
synthesizeBoxTypeIfMissing(doubleType);
synthesizeBoxTypeIfMissing(floatType);
synthesizeBoxTypeIfMissing(voidType);
// Enter a synthetic class that is used to mark internal
< prev index next >