Class TypeChecker
- java.lang.Object
-
- org.hotswap.agent.javassist.compiler.ast.Visitor
-
- org.hotswap.agent.javassist.compiler.TypeChecker
-
-
Field Summary
Fields Modifier and Type Field Description protected intarrayDimprotected StringclassNameprotected intexprTypeprotected MemberResolverresolverprotected CtClassthisClassprotected MethodInfothisMethod-
Fields inherited from interface org.hotswap.agent.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, 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, CHECKCAST, 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_DOUBLE, T_FLOAT, T_CHAR, T_INT, T_LONG, T_SHORT, TABLESWITCH, WIDE
-
Fields inherited from interface org.hotswap.agent.javassist.compiler.TokenId
ABSTRACT, AND_E, ANDAND, ARRAY, ARSHIFT, ARSHIFT_E, assignOps, BadToken, BLOCK, BOOLEAN, BREAK, BYTE, CALL, CASE, CATCH, CLASS, CONST, CONTINUE, DECL, DEFAULT, DIV_E, DO, DOUBLE, DoubleConstant, ELSE, EQ, EXOR_E, EXPR, EXTENDS, FALSE, FINAL, FINALLY, FLOAT, FloatConstant, FOR, GE, GOTO, CHAR, CharConstant, 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 Constructor Description TypeChecker(CtClass cc, ClassPool cp)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static StringargTypesToString(int[] types, int[] dims, String[] cnames)voidatArrayInit(ArrayInit init)voidatArrayLength(Expr expr)voidatArrayRead(ASTree array, ASTree index)voidatAssignExpr(AssignExpr expr)voidatBinExpr(BinExpr expr)voidatCallExpr(CallExpr expr)voidatCastExpr(CastExpr expr)voidatClassObject(Expr expr)voidatCondExpr(CondExpr expr)voidatDoubleConst(DoubleConst d)voidatExpr(Expr expr)protected voidatFieldAssign(Expr expr, int op, ASTree left, ASTree right)protected voidatFieldPlusPlus(ASTree oprand)voidatInstanceOfExpr(InstanceOfExpr expr)voidatIntConst(IntConst i)voidatKeyword(Keyword k)voidatMember(Member mem)voidatMethodArgs(ASTList args, int[] types, int[] dims, String[] cnames)MemberResolver.MethodatMethodCallCore(CtClass targetClass, String mname, ASTList args)protected voidatMultiNewArray(int type, ASTList classname, ASTList size)voidatNewArrayExpr(NewExpr expr)voidatNewExpr(NewExpr expr)voidatStringL(StringL s)voidatVariable(Variable v)protected static voidfatal()protected CtFieldfieldAccess(ASTree expr)static ASTreegetConstantFieldValue(CtField f)intgetMethodArgsLength(ASTList args)protected StringgetSuperName()Returns the JVM-internal representation of this super class name.protected StringgetThisName()Returns the JVM-internal representation of this class name.protected StringresolveClassName(String jvmName)protected StringresolveClassName(ASTList name)voidsetThisMethod(MethodInfo m)Records the currently compiled method.protected static StringBuffertypeToString(StringBuffer sbuf, int type, int dim, String cname)-
Methods inherited from class org.hotswap.agent.javassist.compiler.ast.Visitor
atASTList, atDeclarator, atFieldDecl, atMethodDecl, atPair, atStmnt, atSymbol
-
-
-
-
Field Detail
-
exprType
protected int exprType
-
arrayDim
protected int arrayDim
-
className
protected String className
-
resolver
protected MemberResolver resolver
-
thisClass
protected CtClass thisClass
-
thisMethod
protected MethodInfo thisMethod
-
-
Method Detail
-
argTypesToString
protected static String argTypesToString(int[] types, int[] dims, String[] cnames)
-
typeToString
protected static StringBuffer typeToString(StringBuffer sbuf, int type, int dim, String cname)
-
setThisMethod
public void setThisMethod(MethodInfo m)
Records the currently compiled method.
-
fatal
protected static void fatal() throws CompileError- Throws:
CompileError
-
getThisName
protected String getThisName()
Returns the JVM-internal representation of this class name.
-
getSuperName
protected String getSuperName() throws CompileError
Returns the JVM-internal representation of this super class name.- Throws:
CompileError
-
resolveClassName
protected String resolveClassName(ASTList name) throws CompileError
- Throws:
CompileError
-
resolveClassName
protected String resolveClassName(String jvmName) throws CompileError
- Throws:
CompileError
-
atNewExpr
public void atNewExpr(NewExpr expr) throws CompileError
- Overrides:
atNewExprin classVisitor- Throws:
CompileError
-
atNewArrayExpr
public void atNewArrayExpr(NewExpr expr) throws CompileError
- Throws:
CompileError
-
atArrayInit
public void atArrayInit(ArrayInit init) throws CompileError
- Overrides:
atArrayInitin classVisitor- Throws:
CompileError
-
atMultiNewArray
protected void atMultiNewArray(int type, ASTList classname, ASTList size) throws CompileError- Throws:
CompileError
-
atAssignExpr
public void atAssignExpr(AssignExpr expr) throws CompileError
- Overrides:
atAssignExprin classVisitor- Throws:
CompileError
-
atFieldAssign
protected void atFieldAssign(Expr expr, int op, ASTree left, ASTree right) throws CompileError
- Throws:
CompileError
-
atCondExpr
public void atCondExpr(CondExpr expr) throws CompileError
- Overrides:
atCondExprin classVisitor- Throws:
CompileError
-
atBinExpr
public void atBinExpr(BinExpr expr) throws CompileError
- Overrides:
atBinExprin classVisitor- Throws:
CompileError
-
atCastExpr
public void atCastExpr(CastExpr expr) throws CompileError
- Overrides:
atCastExprin classVisitor- Throws:
CompileError
-
atInstanceOfExpr
public void atInstanceOfExpr(InstanceOfExpr expr) throws CompileError
- Overrides:
atInstanceOfExprin classVisitor- Throws:
CompileError
-
atExpr
public void atExpr(Expr expr) throws CompileError
- Overrides:
atExprin classVisitor- Throws:
CompileError
-
atCallExpr
public void atCallExpr(CallExpr expr) throws CompileError
- Overrides:
atCallExprin classVisitor- Throws:
CompileError
-
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
public int getMethodArgsLength(ASTList args)
-
atMethodArgs
public void atMethodArgs(ASTList args, int[] types, int[] dims, String[] cnames) throws CompileError
- Throws:
CompileError
-
fieldAccess
protected CtField fieldAccess(ASTree expr) throws CompileError
- Throws:
CompileError
-
atClassObject
public void atClassObject(Expr expr) throws CompileError
- Throws:
CompileError
-
atArrayLength
public void atArrayLength(Expr expr) throws CompileError
- Throws:
CompileError
-
atArrayRead
public void atArrayRead(ASTree array, ASTree index) throws CompileError
- Throws:
CompileError
-
atFieldPlusPlus
protected void atFieldPlusPlus(ASTree oprand) throws CompileError
- Throws:
CompileError
-
atMember
public void atMember(Member mem) throws CompileError
- Overrides:
atMemberin classVisitor- Throws:
CompileError
-
atVariable
public void atVariable(Variable v) throws CompileError
- Overrides:
atVariablein classVisitor- Throws:
CompileError
-
atKeyword
public void atKeyword(Keyword k) throws CompileError
- Overrides:
atKeywordin classVisitor- Throws:
CompileError
-
atStringL
public void atStringL(StringL s) throws CompileError
- Overrides:
atStringLin classVisitor- Throws:
CompileError
-
atIntConst
public void atIntConst(IntConst i) throws CompileError
- Overrides:
atIntConstin classVisitor- Throws:
CompileError
-
atDoubleConst
public void atDoubleConst(DoubleConst d) throws CompileError
- Overrides:
atDoubleConstin classVisitor- Throws:
CompileError
-
-