Package javassist.compiler
Class TypeChecker
java.lang.Object
javassist.compiler.ast.Visitor
javassist.compiler.TypeChecker
- Direct Known Subclasses:
JvstTypeChecker
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intprotected Stringprotected int(package private) static final String(package private) static final String(package private) static final String(package private) static final Stringprotected MemberResolverprotected CtClassprotected MethodInfoFields inherited from interface javassist.bytecode.Opcode
AALOAD, AASTORE, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETSTATIC, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMUL, INEG, INSTANCEOF, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_W, LDC2_W, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, STACK_GROW, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, WIDEFields inherited from interface javassist.compiler.TokenId
ABSTRACT, AND_E, ANDAND, ARRAY, ARSHIFT, ARSHIFT_E, assignOps, BadToken, BLOCK, BOOLEAN, BREAK, BYTE, CALL, CASE, CATCH, CHAR, CharConstant, CLASS, CONST, CONTINUE, DECL, DEFAULT, DIV_E, DO, DOUBLE, DoubleConstant, ELSE, EQ, EXOR_E, EXPR, EXTENDS, FALSE, FINAL, FINALLY, FLOAT, FloatConstant, FOR, GE, GOTO, Identifier, IF, IMPLEMENTS, IMPORT, INSTANCEOF, INT, IntConstant, INTERFACE, LABEL, LE, LONG, LongConstant, LSHIFT, LSHIFT_E, MEMBER, MINUS_E, MINUSMINUS, MOD_E, MUL_E, NATIVE, NEQ, NEW, NULL, opNames, OR_E, OROR, PACKAGE, PLUS_E, PLUSPLUS, PRIVATE, PROTECTED, PUBLIC, RETURN, RSHIFT, RSHIFT_E, SHORT, STATIC, STRICT, StringL, SUPER, SWITCH, SYNCHRONIZED, THIS, THROW, THROWS, TRANSIENT, TRUE, TRY, VOID, VOLATILE, WHILE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static StringargTypesToString(int[] types, int[] dims, String[] cnames) private voidatArrayAssign(Expr expr, int op, Expr array, ASTree right) voidatArrayInit(ArrayInit init) voidatArrayLength(Expr expr) voidatArrayRead(ASTree array, ASTree index) voidatAssignExpr(AssignExpr expr) voidvoidatCallExpr(CallExpr expr) voidatCastExpr(CastExpr expr) voidatClassObject(Expr expr) voidatCondExpr(CondExpr expr) voidvoidprotected voidatFieldAssign(Expr expr, int op, ASTree left, ASTree right) protected voidatFieldPlusPlus(ASTree oprand) private voidatFieldRead(ASTree expr) private voidvoidvoidvoidvoidvoidatMethodArgs(ASTList args, int[] types, int[] dims, String[] cnames) atMethodCallCore(CtClass targetClass, String mname, ASTList args) protected voidatMultiNewArray(int type, ASTList classname, ASTList size) voidatNewArrayExpr(NewExpr expr) voidprivate ExpratPlusExpr(BinExpr expr) private voidatPlusPlus(int token, ASTree oprand, Expr expr) voidvoidprivate voidatVariableAssign(Expr expr, int op, Variable var, Declarator d, ASTree right) private static voidprivate voidbooleanExpr(ASTree expr) private voidcomputeBinExprType(BinExpr expr, int token, int type1) protected static voidfatal()protected CtFieldfieldAccess(ASTree expr) private CtFieldfieldAccess2(Expr e, String jvmClassName) private static ASTreeIf MEM is a static final field, this method returns a constant expression representing the value of that field.static ASTreeintgetMethodArgsLength(ASTList args) protected StringReturns the JVM-internal representation of this super class name.protected StringReturns the JVM-internal representation of this class name.private voidinsertCast(BinExpr expr, int type1, int type2) private booleanisConstant(BinExpr expr, int op, ASTree left, ASTree right) private booleanisConstant(Expr expr, int op, ASTree oprand) (package private) static StringisDotSuper(ASTree target) Returns non-null if target is something like Foo.super for accessing the default method in an interface.private static booleanisPlusExpr(ASTree expr) private static ExprmakeAppendCall(ASTree target, ASTree arg) protected StringresolveClassName(String jvmName) protected StringresolveClassName(ASTList name) (package private) voidsetReturnType(String desc) voidRecords the currently compiled method.(package private) static ASTreestripPlusExpr(ASTree expr) protected static StringBuildertypeToString(StringBuilder sbuf, int type, int dim, String cname) Methods inherited from class javassist.compiler.ast.Visitor
atASTList, atDeclarator, atFieldDecl, atMethodDecl, atPair, atStmnt, atSymbol
-
Field Details
-
javaLangObject
- See Also:
-
jvmJavaLangObject
- See Also:
-
jvmJavaLangString
- See Also:
-
jvmJavaLangClass
- See Also:
-
exprType
protected int exprType -
arrayDim
protected int arrayDim -
className
-
resolver
-
thisClass
-
thisMethod
-
-
Constructor Details
-
TypeChecker
-
-
Method Details
-
argTypesToString
-
typeToString
-
setThisMethod
Records the currently compiled method. -
fatal
- Throws:
CompileError
-
getThisName
Returns the JVM-internal representation of this class name. -
getSuperName
Returns the JVM-internal representation of this super class name.- Throws:
CompileError
-
resolveClassName
- Throws:
CompileError
-
resolveClassName
- Throws:
CompileError
-
atNewExpr
- Overrides:
atNewExprin classVisitor- Throws:
CompileError
-
atNewArrayExpr
- Throws:
CompileError
-
atArrayInit
- Overrides:
atArrayInitin classVisitor- Throws:
CompileError
-
atMultiNewArray
- Throws:
CompileError
-
atAssignExpr
- Overrides:
atAssignExprin classVisitor- Throws:
CompileError
-
atVariableAssign
private void atVariableAssign(Expr expr, int op, Variable var, Declarator d, ASTree right) throws CompileError - Throws:
CompileError
-
atArrayAssign
- Throws:
CompileError
-
atFieldAssign
- Throws:
CompileError
-
atCondExpr
- Overrides:
atCondExprin classVisitor- Throws:
CompileError
-
atBinExpr
- Overrides:
atBinExprin classVisitor- Throws:
CompileError
-
atPlusExpr
- Throws:
CompileError
-
isConstant
- Throws:
CompileError
-
stripPlusExpr
-
getConstantFieldValue
If MEM is a static final field, this method returns a constant expression representing the value of that field. -
getConstantFieldValue
-
isPlusExpr
-
makeAppendCall
-
computeBinExprType
- Throws:
CompileError
-
booleanExpr
- Throws:
CompileError
-
insertCast
- Throws:
CompileError
-
atCastExpr
- Overrides:
atCastExprin classVisitor- Throws:
CompileError
-
atInstanceOfExpr
- Overrides:
atInstanceOfExprin classVisitor- Throws:
CompileError
-
atExpr
- Overrides:
atExprin classVisitor- Throws:
CompileError
-
isConstant
-
atCallExpr
- Overrides:
atCallExprin classVisitor- Throws:
CompileError
-
badMethod
- Throws:
CompileError
-
isDotSuper
Returns non-null if target is something like Foo.super for accessing the default method in an interface. Otherwise, null.- Returns:
- the class name followed by
.superor null.
-
atMethodCallCore
public MemberResolver.Method atMethodCallCore(CtClass targetClass, String mname, ASTList args) throws CompileError - Returns:
- a pair of the class declaring the invoked method and the MethodInfo of that method. Never null.
- Throws:
CompileError
-
getMethodArgsLength
-
atMethodArgs
public void atMethodArgs(ASTList args, int[] types, int[] dims, String[] cnames) throws CompileError - Throws:
CompileError
-
setReturnType
- Throws:
CompileError
-
atFieldRead
- Throws:
CompileError
-
atFieldRead
- Throws:
CompileError
-
fieldAccess
- Throws:
CompileError
-
fieldAccess2
- Throws:
CompileError
-
atClassObject
- Throws:
CompileError
-
atArrayLength
- Throws:
CompileError
-
atArrayRead
- Throws:
CompileError
-
atPlusPlus
- Throws:
CompileError
-
atFieldPlusPlus
- Throws:
CompileError
-
atMember
- Overrides:
atMemberin classVisitor- Throws:
CompileError
-
atVariable
- Overrides:
atVariablein classVisitor- Throws:
CompileError
-
atKeyword
- Overrides:
atKeywordin classVisitor- Throws:
CompileError
-
atStringL
- Overrides:
atStringLin classVisitor- Throws:
CompileError
-
atIntConst
- Overrides:
atIntConstin classVisitor- Throws:
CompileError
-
atDoubleConst
- Overrides:
atDoubleConstin classVisitor- Throws:
CompileError
-