Top Fields Constructors Methods
javassist.compiler

public Class TypeChecker

extends Visitor
implements Opcode, TokenId
Class Inheritance
All Implemented Interfaces
javassist.compiler.TokenId, javassist.bytecode.Opcode
Known Direct Subclasses
javassist.compiler.JvstTypeChecker
Imports
javassist.ClassPool, .CtClass, .CtField, .Modifier, .NotFoundException, javassist.bytecode.FieldInfo, .MethodInfo, .Opcode, javassist.compiler.ast.ASTList, .ASTree, .ArrayInit, .AssignExpr, .BinExpr, .CallExpr, .CastExpr, .CondExpr, .Declarator, .DoubleConst, .Expr, .InstanceOfExpr, .IntConst, .Keyword, .Member, .NewExpr, .StringL, .Symbol, .Variable, .Visitor

Field Summary

Modifier and TypeField and Description
protected int
protected String
protected int
pack-priv static final String
pack-priv static final String
pack-priv static final String
pack-priv static final String
protected MemberResolver
protected CtClass
protected MethodInfo

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected static String
argTypesToString(int[] types, int[] dims, String[] cnames)

private void
atArrayAssign(Expr expr, int op, Expr array, ASTree right)

public void
public void
public void
atArrayRead(ASTree array, ASTree index)

public void
public void
public void
public void
public void
public void
public void
public void
protected void
atFieldAssign(Expr expr, int op, ASTree left, ASTree right)

protected void
private void
private void
public void
public void
public void
public void
public void
atMethodArgs(ASTList args, int[] types, int[] dims, String[] cnames)

public MemberResolver.Method

Returns:

a pair of the class declaring the invoked method and the MethodInfo of that method. Never null.
atMethodCallCore
(CtClass targetClass, String mname, ASTList args)

protected void
atMultiNewArray(int type, ASTList classname, ASTList size)

public void
public void
private Expr
private void
atPlusPlus(int token, ASTree oprand, Expr expr)

public void
public void
private void
atVariableAssign(Expr expr, int op, Variable var, Declarator d, ASTree right)

private static void
private void
private void
computeBinExprType(BinExpr expr, int token, int type1)

protected static void
protected CtField
private CtField
fieldAccess2(Expr e, String jvmClassName)

private static ASTree
getConstantFieldValue(Member mem)

If MEM is a static final field, this method returns a constant expression representing the value of that field.

public static ASTree
public int
protected String
getSuperName()

Returns the JVM-internal representation of this super class name.

protected String
getThisName()

Returns the JVM-internal representation of this class name.

private void
insertCast(BinExpr expr, int type1, int type2)

private boolean
isConstant(BinExpr expr, int op, ASTree left, ASTree right)

private boolean
isConstant(Expr expr, int op, ASTree oprand)

pack-priv static String

Returns:

the class name followed by .super or null.
isDotSuper
(ASTree target)

Returns non-null if target is something like Foo.super for accessing the default method in an interface.

private static boolean
private static Expr
protected String
protected String
pack-priv void
public void
setThisMethod(MethodInfo m)

Records the currently compiled method.

pack-priv static ASTree
protected static StringBuilder
typeToString(StringBuilder sbuf, int type, int dim, String cname)

Inherited from javassist.compiler.ast.Visitor:
atASTListatDeclaratoratFieldDeclatMethodDeclatPairatStmntatSymbol

Field Detail

arrayDimback to summary
protected int arrayDim
classNameback to summary
protected String className
exprTypeback to summary
protected int exprType
javaLangObjectback to summary
pack-priv static final String javaLangObject
jvmJavaLangClassback to summary
pack-priv static final String jvmJavaLangClass
jvmJavaLangObjectback to summary
pack-priv static final String jvmJavaLangObject
jvmJavaLangStringback to summary
pack-priv static final String jvmJavaLangString
resolverback to summary
protected MemberResolver resolver
thisClassback to summary
protected CtClass thisClass
thisMethodback to summary
protected MethodInfo thisMethod

Constructor Detail

TypeCheckerback to summary
public TypeChecker(CtClass cc, ClassPool cp)

Method Detail

argTypesToStringback to summary
protected static String argTypesToString(int[] types, int[] dims, String[] cnames)
atArrayAssignback to summary
private void atArrayAssign(Expr expr, int op, Expr array, ASTree right) throws CompileError
atArrayInitback to summary
public void atArrayInit(ArrayInit init) throws CompileError

Overrides javassist.compiler.ast.Visitor.atArrayInit.

Annotations
@Override
atArrayLengthback to summary
public void atArrayLength(Expr expr) throws CompileError
atArrayReadback to summary
public void atArrayRead(ASTree array, ASTree index) throws CompileError
atAssignExprback to summary
public void atAssignExpr(AssignExpr expr) throws CompileError

Overrides javassist.compiler.ast.Visitor.atAssignExpr.

Annotations
@Override
atBinExprback to summary
public void atBinExpr(BinExpr expr) throws CompileError

Overrides javassist.compiler.ast.Visitor.atBinExpr.

Annotations
@Override
atCallExprback to summary
public void atCallExpr(CallExpr expr) throws CompileError

Overrides javassist.compiler.ast.Visitor.atCallExpr.

Annotations
@Override
atCastExprback to summary
public void atCastExpr(CastExpr expr) throws CompileError

Overrides javassist.compiler.ast.Visitor.atCastExpr.

Annotations
@Override
atClassObjectback to summary
public void atClassObject(Expr expr) throws CompileError
atCondExprback to summary
public void atCondExpr(CondExpr expr) throws CompileError

Overrides javassist.compiler.ast.Visitor.atCondExpr.

Annotations
@Override
atDoubleConstback to summary
public void atDoubleConst(DoubleConst d) throws CompileError

Overrides javassist.compiler.ast.Visitor.atDoubleConst.

Annotations
@Override
atExprback to summary
public void atExpr(Expr expr) throws CompileError

Overrides javassist.compiler.ast.Visitor.atExpr.

Annotations
@Override
atFieldAssignback to summary
protected void atFieldAssign(Expr expr, int op, ASTree left, ASTree right) throws CompileError
atFieldPlusPlusback to summary
protected void atFieldPlusPlus(ASTree oprand) throws CompileError
atFieldReadback to summary
private void atFieldRead(ASTree expr) throws CompileError
atFieldReadback to summary
private void atFieldRead(CtField f) throws CompileError
atInstanceOfExprback to summary
public void atInstanceOfExpr(InstanceOfExpr expr) throws CompileError

Overrides javassist.compiler.ast.Visitor.atInstanceOfExpr.

Annotations
@Override
atIntConstback to summary
public void atIntConst(IntConst i) throws CompileError

Overrides javassist.compiler.ast.Visitor.atIntConst.

Annotations
@Override
atKeywordback to summary
public void atKeyword(Keyword k) throws CompileError

Overrides javassist.compiler.ast.Visitor.atKeyword.

Annotations
@Override
atMemberback to summary
public void atMember(Member mem) throws CompileError

Overrides javassist.compiler.ast.Visitor.atMember.

Annotations
@Override
atMethodArgsback to summary
public void atMethodArgs(ASTList args, int[] types, int[] dims, String[] cnames) throws CompileError
atMethodCallCoreback to summary
public MemberResolver.Method atMethodCallCore(CtClass targetClass, String mname, ASTList args) throws CompileError
Returns:MemberResolver.Method

a pair of the class declaring the invoked method and the MethodInfo of that method. Never null.

atMultiNewArrayback to summary
protected void atMultiNewArray(int type, ASTList classname, ASTList size) throws CompileError
atNewArrayExprback to summary
public void atNewArrayExpr(NewExpr expr) throws CompileError
atNewExprback to summary
public void atNewExpr(NewExpr expr) throws CompileError

Overrides javassist.compiler.ast.Visitor.atNewExpr.

Annotations
@Override
atPlusExprback to summary
private Expr atPlusExpr(BinExpr expr) throws CompileError
atPlusPlusback to summary
private void atPlusPlus(int token, ASTree oprand, Expr expr) throws CompileError
atStringLback to summary
public void atStringL(StringL s) throws CompileError

Overrides javassist.compiler.ast.Visitor.atStringL.

Annotations
@Override
atVariableback to summary
public void atVariable(Variable v) throws CompileError

Overrides javassist.compiler.ast.Visitor.atVariable.

Annotations
@Override
atVariableAssignback to summary
private void atVariableAssign(Expr expr, int op, Variable var, Declarator d, ASTree right) throws CompileError
badMethodback to summary
private static void badMethod() throws CompileError
booleanExprback to summary
private void booleanExpr(ASTree expr) throws CompileError
computeBinExprTypeback to summary
private void computeBinExprType(BinExpr expr, int token, int type1) throws CompileError
fatalback to summary
protected static void fatal() throws CompileError
fieldAccessback to summary
protected CtField fieldAccess(ASTree expr) throws CompileError
fieldAccess2back to summary
private CtField fieldAccess2(Expr e, String jvmClassName) throws CompileError
getConstantFieldValueback to summary
private static ASTree getConstantFieldValue(Member mem)

If MEM is a static final field, this method returns a constant expression representing the value of that field.

getConstantFieldValueback to summary
public static ASTree getConstantFieldValue(CtField f)
getMethodArgsLengthback to summary
public int getMethodArgsLength(ASTList args)
getSuperNameback to summary
protected String getSuperName() throws CompileError

Returns the JVM-internal representation of this super class name.

getThisNameback to summary
protected String getThisName()

Returns the JVM-internal representation of this class name.

insertCastback to summary
private void insertCast(BinExpr expr, int type1, int type2) throws CompileError
isConstantback to summary
private boolean isConstant(BinExpr expr, int op, ASTree left, ASTree right) throws CompileError
isConstantback to summary
private boolean isConstant(Expr expr, int op, ASTree oprand)
isDotSuperback to summary
pack-priv static String isDotSuper(ASTree target)

Returns non-null if target is something like Foo.super for accessing the default method in an interface. Otherwise, null.

Returns:String

the class name followed by .super or null.

isPlusExprback to summary
private static boolean isPlusExpr(ASTree expr)
makeAppendCallback to summary
private static Expr makeAppendCall(ASTree target, ASTree arg)
resolveClassNameback to summary
protected String resolveClassName(ASTList name) throws CompileError
resolveClassNameback to summary
protected String resolveClassName(String jvmName) throws CompileError
setReturnTypeback to summary
pack-priv void setReturnType(String desc) throws CompileError
setThisMethodback to summary
public void setThisMethod(MethodInfo m)

Records the currently compiled method.

stripPlusExprback to summary
pack-priv static ASTree stripPlusExpr(ASTree expr)
typeToStringback to summary
protected static StringBuilder typeToString(StringBuilder sbuf, int type, int dim, String cname)