Package javassist.compiler
Class TypeChecker
- java.lang.Object
-
- javassist.compiler.ast.Visitor
-
- javassist.compiler.TypeChecker
-
-
Field Summary
Fields Modifier and Type Field Description protected int
arrayDim
protected java.lang.String
className
protected int
exprType
protected MemberResolver
resolver
protected CtClass
thisClass
protected MethodInfo
thisMethod
-
Fields 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, WIDE
-
Fields 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 Constructor Description TypeChecker(CtClass cc, ClassPool cp)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static java.lang.String
argTypesToString(int[] types, int[] dims, java.lang.String[] cnames)
void
atArrayInit(ArrayInit init)
void
atArrayLength(Expr expr)
void
atArrayRead(ASTree array, ASTree index)
void
atAssignExpr(AssignExpr expr)
void
atBinExpr(BinExpr expr)
void
atCallExpr(CallExpr expr)
void
atCastExpr(CastExpr expr)
void
atClassObject(Expr expr)
void
atCondExpr(CondExpr expr)
void
atDoubleConst(DoubleConst d)
void
atExpr(Expr expr)
protected void
atFieldAssign(Expr expr, int op, ASTree left, ASTree right)
protected void
atFieldPlusPlus(ASTree oprand)
void
atInstanceOfExpr(InstanceOfExpr expr)
void
atIntConst(IntConst i)
void
atKeyword(Keyword k)
void
atMember(Member mem)
void
atMethodArgs(ASTList args, int[] types, int[] dims, java.lang.String[] cnames)
MemberResolver.Method
atMethodCallCore(CtClass targetClass, java.lang.String mname, ASTList args)
protected void
atMultiNewArray(int type, ASTList classname, ASTList size)
void
atNewArrayExpr(NewExpr expr)
void
atNewExpr(NewExpr expr)
void
atStringL(StringL s)
void
atVariable(Variable v)
protected static void
fatal()
protected CtField
fieldAccess(ASTree expr)
static ASTree
getConstantFieldValue(CtField f)
int
getMethodArgsLength(ASTList args)
protected java.lang.String
getSuperName()
Returns the JVM-internal representation of this super class name.protected java.lang.String
getThisName()
Returns the JVM-internal representation of this class name.protected java.lang.String
resolveClassName(java.lang.String jvmName)
protected java.lang.String
resolveClassName(ASTList name)
void
setThisMethod(MethodInfo m)
Records the currently compiled method.protected static java.lang.StringBuffer
typeToString(java.lang.StringBuffer sbuf, int type, int dim, java.lang.String cname)
-
Methods inherited from class javassist.compiler.ast.Visitor
atASTList, atDeclarator, atFieldDecl, atMethodDecl, atPair, atStmnt, atSymbol
-
-
-
-
Field Detail
-
exprType
protected int exprType
-
arrayDim
protected int arrayDim
-
className
protected java.lang.String className
-
resolver
protected MemberResolver resolver
-
thisClass
protected CtClass thisClass
-
thisMethod
protected MethodInfo thisMethod
-
-
Method Detail
-
argTypesToString
protected static java.lang.String argTypesToString(int[] types, int[] dims, java.lang.String[] cnames)
-
typeToString
protected static java.lang.StringBuffer typeToString(java.lang.StringBuffer sbuf, int type, int dim, java.lang.String cname)
-
setThisMethod
public void setThisMethod(MethodInfo m)
Records the currently compiled method.
-
fatal
protected static void fatal() throws CompileError
- Throws:
CompileError
-
getThisName
protected java.lang.String getThisName()
Returns the JVM-internal representation of this class name.
-
getSuperName
protected java.lang.String getSuperName() throws CompileError
Returns the JVM-internal representation of this super class name.- Throws:
CompileError
-
resolveClassName
protected java.lang.String resolveClassName(ASTList name) throws CompileError
- Throws:
CompileError
-
resolveClassName
protected java.lang.String resolveClassName(java.lang.String jvmName) throws CompileError
- Throws:
CompileError
-
atNewExpr
public void atNewExpr(NewExpr expr) throws CompileError
- Overrides:
atNewExpr
in classVisitor
- Throws:
CompileError
-
atNewArrayExpr
public void atNewArrayExpr(NewExpr expr) throws CompileError
- Throws:
CompileError
-
atArrayInit
public void atArrayInit(ArrayInit init) throws CompileError
- Overrides:
atArrayInit
in 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:
atAssignExpr
in 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:
atCondExpr
in classVisitor
- Throws:
CompileError
-
atBinExpr
public void atBinExpr(BinExpr expr) throws CompileError
- Overrides:
atBinExpr
in classVisitor
- Throws:
CompileError
-
atCastExpr
public void atCastExpr(CastExpr expr) throws CompileError
- Overrides:
atCastExpr
in classVisitor
- Throws:
CompileError
-
atInstanceOfExpr
public void atInstanceOfExpr(InstanceOfExpr expr) throws CompileError
- Overrides:
atInstanceOfExpr
in classVisitor
- Throws:
CompileError
-
atExpr
public void atExpr(Expr expr) throws CompileError
- Overrides:
atExpr
in classVisitor
- Throws:
CompileError
-
atCallExpr
public void atCallExpr(CallExpr expr) throws CompileError
- Overrides:
atCallExpr
in classVisitor
- Throws:
CompileError
-
atMethodCallCore
public MemberResolver.Method atMethodCallCore(CtClass targetClass, java.lang.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, java.lang.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:
atMember
in classVisitor
- Throws:
CompileError
-
atVariable
public void atVariable(Variable v) throws CompileError
- Overrides:
atVariable
in classVisitor
- Throws:
CompileError
-
atKeyword
public void atKeyword(Keyword k) throws CompileError
- Overrides:
atKeyword
in classVisitor
- Throws:
CompileError
-
atStringL
public void atStringL(StringL s) throws CompileError
- Overrides:
atStringL
in classVisitor
- Throws:
CompileError
-
atIntConst
public void atIntConst(IntConst i) throws CompileError
- Overrides:
atIntConst
in classVisitor
- Throws:
CompileError
-
atDoubleConst
public void atDoubleConst(DoubleConst d) throws CompileError
- Overrides:
atDoubleConst
in classVisitor
- Throws:
CompileError
-
-