|
ESC/Java2 © 2003,2004,2005,2006 David Cok and Joseph Kiniry © 2005,2006 UCD Dublin © 2003,2004 Radboud University Nijmegen © 1999,2000 Compaq Computer Corporation © 1997,1998,1999 Digital Equipment Corporation All Rights Reserved |
||||||||||
| PREV NEXT | FRAMES NO FRAMES | ||||||||||
| Packages that use Env | |
| escjava.tc | |
| javafe.tc | |
| Uses of Env in escjava.tc |
| Subclasses of Env in escjava.tc | |
class |
EnvForGhostLocals
EnvForGhostLocals are used to extend an existing Env with one new local binding, either a local variable definition or a formal parameter. |
class |
GhostEnv
This class overrides EnvForTypeSig so that it "sees" ghost and model
fields if FlowInsensitiveChecks.inAnnotation is
true. |
| Fields in escjava.tc declared as Env | |
protected Env |
EnvForGhostLocals.parent
Our parent environment |
| Methods in escjava.tc that return Env | |
Env |
GhostEnv.asStaticContext()
Returns a new Env that acts the same as us, except that its current
instance (if any) is not accessible. |
protected Env |
FlowInsensitiveChecks.checkStmt(Env env,
Stmt s)
|
protected Env |
FlowInsensitiveChecks.checkSkolemConstants(Env env,
boolean allowed)
|
protected Env |
FlowInsensitiveChecks.checkModifierPragma(ModifierPragma p,
ASTNode ctxt,
Env env)
|
protected Env |
FlowInsensitiveChecks.checkStmtPragma(Env e,
StmtPragma s)
|
Env |
EnvForGhostLocals.asStaticContext()
Returns a new Env that acts the same as us, except that its current instance (if any) is not accessible. |
| Methods in escjava.tc with parameters of type Env | |
protected TypeSig |
Types.makeTypeSigInstance(java.lang.String simpleName,
Env enclosingEnv,
TypeDecl decl)
|
protected Env |
FlowInsensitiveChecks.checkStmt(Env env,
Stmt s)
|
protected void |
FlowInsensitiveChecks.checkLoopInvariants(Env env,
boolean allowed)
|
protected void |
FlowInsensitiveChecks.checkLoopDecreases(Env env,
boolean allowed)
|
protected void |
FlowInsensitiveChecks.checkLoopPredicates(Env env,
boolean allowed)
|
protected Env |
FlowInsensitiveChecks.checkSkolemConstants(Env env,
boolean allowed)
|
protected Expr |
FlowInsensitiveChecks.checkPredicate(Env env,
Expr e)
|
protected Expr |
FlowInsensitiveChecks.checkExpr(Env env,
Expr e)
|
protected Env |
FlowInsensitiveChecks.checkModifierPragma(ModifierPragma p,
ASTNode ctxt,
Env env)
|
protected Env |
FlowInsensitiveChecks.checkStmtPragma(Env e,
StmtPragma s)
|
| Constructors in escjava.tc with parameters of type Env | |
TypeSig(java.lang.String simpleName,
Env enclosingEnv,
TypeDecl decl)
|
|
GhostEnv(Env parent,
TypeSig peervar,
boolean staticContext)
|
|
EnvForGhostLocals(Env parent,
GenericVarDecl decl)
Create a environment from an existing one by adding a new local binding. |
|
| Uses of Env in javafe.tc |
| Subclasses of Env in javafe.tc | |
class |
EnvForCU
EnvForCUs are used to create an Env for a CompilationUnit. |
class |
EnvForEnclosedScope
EnvForLocals are used to extend an existing Env with one new local type binding. |
class |
EnvForLocals
EnvForLocals are used to extend an existing Env with one new local binding, either a local variable definition or a formal parameter. |
class |
EnvForLocalType
EnvForLocals are used to extend an existing Env with one new local type binding. |
class |
EnvForTypeSig
EnvForTypeSigs are used to extend an existing Env with the bindings of a TypeSig. |
| Fields in javafe.tc declared as Env | |
protected Env |
TypeSig.enclosingEnv
Our enclosing Env; may be null for member types because of laziness. |
protected Env |
EnvForTypeSig.parent
Our parent environment |
protected Env |
EnvForLocalType.parent
Our parent environment |
protected Env |
EnvForLocals.parent
Our parent environment |
protected Env |
EnvForEnclosedScope.parent
Our parent environment |
| Methods in javafe.tc that return Env | |
Env |
TypeSig.getEnclosingEnv()
Return our enclosing environment. |
protected Env |
FlowInsensitiveChecks.checkVarDeclStmt(Env e,
LocalVarDecl s)
|
protected Env |
FlowInsensitiveChecks.checkClassDeclStmt(Env e,
ClassDeclStmt s)
|
protected Env |
FlowInsensitiveChecks.checkSwitchStmt(Env e,
SwitchStmt s)
|
protected Env |
FlowInsensitiveChecks.checkStmt(Env e,
Stmt s)
Typecheck a statement in a given environment then return the environment in effect for statements that follow the given statement. |
protected Env |
FlowInsensitiveChecks.checkStmtVec(Env env,
StmtVec v)
|
protected Env |
FlowInsensitiveChecks.checkModifierPragmaVec(ModifierPragmaVec v,
ASTNode ctxt,
Env env)
Hook to do additional processing on ModifierVecs. |
protected Env |
FlowInsensitiveChecks.checkModifierPragma(ModifierPragma p,
ASTNode ctxt,
Env env)
Hook to do additional processing on Modifiers. |
protected Env |
FlowInsensitiveChecks.checkStmtPragma(Env e,
StmtPragma s)
|
protected Env |
FlowInsensitiveChecks.checkTypeModifierPragmaVec(TypeModifierPragmaVec v,
ASTNode ctxt,
Env env)
|
protected Env |
FlowInsensitiveChecks.checkTypeModifierPragma(TypeModifierPragma p,
ASTNode ctxt,
Env env)
|
protected Env |
FlowInsensitiveChecks.checkTypeModifiers(Env env,
Type t)
This may be called more than once on a Type t. |
Env |
EnvForTypeSig.asStaticContext()
Returns a new Env that acts the same as us, except that its current instance (if any) is not accessible. |
Env |
EnvForLocalType.asStaticContext()
Returns a new Env that acts the same as us, except that its current instance (if any) is not accessible. |
Env |
EnvForLocals.asStaticContext()
Returns a new Env that acts the same as us, except that its current instance (if any) is not accessible. |
Env |
EnvForEnclosedScope.asStaticContext()
Returns a new Env that acts the same as us, except that its current instance (if any) is not accessible. |
Env |
EnvForCU.asStaticContext()
Returns a new Env that acts the same as us, except that its current instance (if any) is not accessible. |
abstract Env |
Env.asStaticContext()
Returns a new Env that acts the same as us, except that its current instance (if any) is not accessible. |
| Methods in javafe.tc with parameters of type Env | |
static TypeSig |
Types.makeTypeSig(java.lang.String simpleName,
Env enclosingEnv,
TypeDecl decl)
Factory method for TypeSig structures |
protected TypeSig |
Types.makeTypeSigInstance(java.lang.String simpleName,
Env enclosingEnv,
TypeDecl decl)
|
TypeSig |
PrepTypeDeclaration.processTypeNameAnnotations(TypeName tn,
TypeSig sig,
Env env)
|
protected Env |
FlowInsensitiveChecks.checkVarDeclStmt(Env e,
LocalVarDecl s)
|
protected Env |
FlowInsensitiveChecks.checkClassDeclStmt(Env e,
ClassDeclStmt s)
|
protected Env |
FlowInsensitiveChecks.checkSwitchStmt(Env e,
SwitchStmt s)
|
protected Env |
FlowInsensitiveChecks.checkStmt(Env e,
Stmt s)
Typecheck a statement in a given environment then return the environment in effect for statements that follow the given statement. |
protected void |
FlowInsensitiveChecks.checkForLoopAfterInit(Env se,
ForStmt f)
|
protected Env |
FlowInsensitiveChecks.checkStmtVec(Env env,
StmtVec v)
|
protected Type[] |
FlowInsensitiveChecks.checkExprVec(Env env,
ExprVec ev)
|
protected VarInit |
FlowInsensitiveChecks.checkInit(Env env,
VarInit x,
Type expectedResult)
|
protected Expr |
FlowInsensitiveChecks.checkDesignator(Env env,
Expr e)
|
protected Expr |
FlowInsensitiveChecks.checkExpr(Env env,
Expr expr,
Type t)
Typechecks expressions. |
protected Expr |
FlowInsensitiveChecks.checkExpr(Env env,
Expr x)
Typechecks expressions. |
protected MethodInvocation |
FlowInsensitiveChecks.checkMethodInvocationExpr(Env env,
MethodInvocation mi)
Typecheck method invocation. |
protected Expr |
FlowInsensitiveChecks.checkAmbiguousMethodInvocationExpr(Env env,
AmbiguousMethodInvocation ami)
Disambiguates an ambiguous method invocation and then typechecks it. |
protected FieldAccess |
FlowInsensitiveChecks.checkFieldAccessExpr(Env env,
FieldAccess fa)
Typechecks a field access (e.g., this.x). |
protected Expr |
FlowInsensitiveChecks.checkAmbiguousVariableAccessExpr(Env env,
AmbiguousVariableAccess av)
Disambiguates an ambiguous variable access and then typechecks (e.g., x). |
protected Expr |
FlowInsensitiveChecks.checkParenExpr(Env env,
ParenExpr pe)
Typechecks paranthesis. |
protected Expr |
FlowInsensitiveChecks.checkNotExpr(Env env,
UnaryExpr ue)
Typecheck boolean not (e.g., ! |
protected Expr |
FlowInsensitiveChecks.checkIncDecExpr(Env env,
UnaryExpr ue)
Typecheck unary increment and decrement operators (e.g., ++x). |
protected Expr |
FlowInsensitiveChecks.checkBitnotExpr(Env env,
UnaryExpr ue)
Typecheck bitwise negation (e.g., ~x). |
protected Expr |
FlowInsensitiveChecks.checkSignExpr(Env env,
UnaryExpr ue)
Typecheck sign (e.g. |
protected Expr |
FlowInsensitiveChecks.checkAssignmentExpr(Env env,
BinaryExpr be)
Typecheck assignment-like expressions (e.g., a += 2). |
protected Expr |
FlowInsensitiveChecks.checkBinaryExpr(Env env,
BinaryExpr be)
Typecheck simple binary expressions (e.g., x + y). |
protected Expr |
FlowInsensitiveChecks.checkClassLiteralExpr(Env env,
ClassLiteral cl)
Typechecks a class literal (e.g., X which might appear as the rhs of instanceof). |
protected CastExpr |
FlowInsensitiveChecks.checkCastExpr(Env env,
CastExpr ce)
Typecheck a (dynamic) cast. |
protected Expr |
FlowInsensitiveChecks.checkInstanceOfExpr(Env env,
InstanceOfExpr ie)
Typechecks a dynamic type probe (e.g., x instanceof X). |
protected Expr |
FlowInsensitiveChecks.checkCondExpr(Env env,
CondExpr ce)
Typechecks a conditional expression (e..g, a == 0 ? |
protected Expr |
FlowInsensitiveChecks.checkNewArrayExpr(Env env,
NewArrayExpr na)
Typecheck a new array construction (e.g., new int[100]). |
protected NewInstanceExpr |
FlowInsensitiveChecks.checkNewInstanceExpr(Env env,
NewInstanceExpr ne)
Typecheck a class instantiation (e.g., new C()). |
protected ArrayRefExpr |
FlowInsensitiveChecks.checkArrayRefExpr(Env env,
ArrayRefExpr r)
Typechecks an array reference expression (e.g., a[3]). |
protected Expr |
FlowInsensitiveChecks.checkThisExpr(Env env,
ThisExpr e)
Typechecks this expression. |
protected Type |
FlowInsensitiveChecks.checkObjectDesignator(Env env,
ObjectDesignator od)
|
protected Env |
FlowInsensitiveChecks.checkModifierPragmaVec(ModifierPragmaVec v,
ASTNode ctxt,
Env env)
Hook to do additional processing on ModifierVecs. |
protected Env |
FlowInsensitiveChecks.checkModifierPragma(ModifierPragma p,
ASTNode ctxt,
Env env)
Hook to do additional processing on Modifiers. |
protected Env |
FlowInsensitiveChecks.checkStmtPragma(Env e,
StmtPragma s)
|
protected Env |
FlowInsensitiveChecks.checkTypeModifierPragmaVec(TypeModifierPragmaVec v,
ASTNode ctxt,
Env env)
|
protected Env |
FlowInsensitiveChecks.checkTypeModifierPragma(TypeModifierPragma p,
ASTNode ctxt,
Env env)
|
protected Env |
FlowInsensitiveChecks.checkTypeModifiers(Env env,
Type t)
This may be called more than once on a Type t. |
| Constructors in javafe.tc with parameters of type Env | |
TypeSig(java.lang.String simpleName,
Env enclosingEnv,
TypeDecl decl)
Create a TypeSig that represents a non-member type. |
|
EnvForTypeSig(Env parent,
TypeSig peervar,
boolean staticContext)
Create an environment from an existing one by adding a new TypeSigs bindings. |
|
EnvForLocalType(Env parent,
TypeDecl decl)
Create a environment from an existing one by adding a new local type binding. |
|
EnvForLocals(Env parent,
GenericVarDecl decl)
Create a environment from an existing one by adding a new local binding. |
|
EnvForLocals(Env parent,
GenericVarDecl decl,
boolean warnAboutDuplication)
|
|
EnvForEnclosedScope(Env parent)
Create a environment from an existing one by adding a new local type binding. |
|
|
ESC/Java2 © 2003,2004,2005,2006 David Cok and Joseph Kiniry © 2005,2006 UCD Dublin © 2003,2004 Radboud University Nijmegen © 1999,2000 Compaq Computer Corporation © 1997,1998,1999 Digital Equipment Corporation All Rights Reserved |
||||||||||
| PREV NEXT | FRAMES NO FRAMES | ||||||||||