Package javassist.compiler
Class JvstTypeChecker
- java.lang.Object
-
- javassist.compiler.ast.Visitor
-
- javassist.compiler.TypeChecker
-
- javassist.compiler.JvstTypeChecker
-
public class JvstTypeChecker extends TypeChecker
-
-
Field Summary
Fields Modifier and Type Field Description private JvstCodeGencodeGen-
Fields inherited from class javassist.compiler.TypeChecker
arrayDim, className, exprType, javaLangObject, jvmJavaLangClass, jvmJavaLangObject, jvmJavaLangString, resolver, thisClass, 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 JvstTypeChecker(CtClass cc, ClassPool cp, JvstCodeGen gen)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddNullIfVoid()voidatCallExpr(CallExpr expr)voidatCastExpr(CastExpr expr)protected voidatCastToRtype(CastExpr expr)Inserts a cast operator to the return type.protected voidatCastToWrapper(CastExpr expr)protected voidatCflow(ASTList cname)protected voidatFieldAssign(Expr expr, int op, ASTree left, ASTree right)voidatMember(Member mem)voidatMethodArgs(ASTList args, int[] types, int[] dims, java.lang.String[] cnames)(package private) voidcompileInvokeSpecial(ASTree target, java.lang.String classname, java.lang.String methodname, java.lang.String descriptor, ASTList args)protected voidcompileUnwrapValue(CtClass type)intgetMethodArgsLength(ASTList args)booleanisParamListName(ASTList args)voidsetType(CtClass type)private voidsetType(CtClass type, int dim)-
Methods inherited from class javassist.compiler.TypeChecker
argTypesToString, atArrayInit, atArrayLength, atArrayRead, atAssignExpr, atBinExpr, atClassObject, atCondExpr, atDoubleConst, atExpr, atFieldPlusPlus, atInstanceOfExpr, atIntConst, atKeyword, atMethodCallCore, atMultiNewArray, atNewArrayExpr, atNewExpr, atStringL, atVariable, fatal, fieldAccess, getConstantFieldValue, getSuperName, getThisName, isDotSuper, resolveClassName, resolveClassName, setReturnType, setThisMethod, stripPlusExpr, typeToString
-
Methods inherited from class javassist.compiler.ast.Visitor
atASTList, atDeclarator, atFieldDecl, atMethodDecl, atPair, atStmnt, atSymbol
-
-
-
-
Field Detail
-
codeGen
private JvstCodeGen codeGen
-
-
Constructor Detail
-
JvstTypeChecker
public JvstTypeChecker(CtClass cc, ClassPool cp, JvstCodeGen gen)
-
-
Method Detail
-
addNullIfVoid
public void addNullIfVoid()
-
atMember
public void atMember(Member mem) throws CompileError
- Overrides:
atMemberin classTypeChecker- Throws:
CompileError
-
atFieldAssign
protected void atFieldAssign(Expr expr, int op, ASTree left, ASTree right) throws CompileError
- Overrides:
atFieldAssignin classTypeChecker- Throws:
CompileError
-
atCastExpr
public void atCastExpr(CastExpr expr) throws CompileError
- Overrides:
atCastExprin classTypeChecker- Throws:
CompileError
-
atCastToRtype
protected void atCastToRtype(CastExpr expr) throws CompileError
Inserts a cast operator to the return type. If the return type is void, this does nothing.- Throws:
CompileError
-
atCastToWrapper
protected void atCastToWrapper(CastExpr expr) throws CompileError
- Throws:
CompileError
-
atCallExpr
public void atCallExpr(CallExpr expr) throws CompileError
- Overrides:
atCallExprin classTypeChecker- Throws:
CompileError
-
atCflow
protected void atCflow(ASTList cname) throws CompileError
- Throws:
CompileError
-
isParamListName
public boolean isParamListName(ASTList args)
-
getMethodArgsLength
public int getMethodArgsLength(ASTList args)
- Overrides:
getMethodArgsLengthin classTypeChecker
-
atMethodArgs
public void atMethodArgs(ASTList args, int[] types, int[] dims, java.lang.String[] cnames) throws CompileError
- Overrides:
atMethodArgsin classTypeChecker- Throws:
CompileError
-
compileInvokeSpecial
void compileInvokeSpecial(ASTree target, java.lang.String classname, java.lang.String methodname, java.lang.String descriptor, ASTList args) throws CompileError
- Throws:
CompileError
-
compileUnwrapValue
protected void compileUnwrapValue(CtClass type) throws CompileError
- Throws:
CompileError
-
setType
public void setType(CtClass type) throws CompileError
- Throws:
CompileError
-
setType
private void setType(CtClass type, int dim) throws CompileError
- Throws:
CompileError
-
-