|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.aspectj.compiler.base.CompilerObject
org.aspectj.compiler.base.ast.ASTObject
org.aspectj.compiler.base.ast.Expr
org.aspectj.compiler.base.ast.JavaExpr
org.aspectj.compiler.base.ast.AssignableExpr
org.aspectj.compiler.base.ast.FieldAccessExpr
Field Summary | |
protected Expr |
expr
|
protected Field |
field
|
protected boolean |
isSuper
|
Fields inherited from class org.aspectj.compiler.base.ast.Expr |
type |
Fields inherited from class org.aspectj.compiler.base.ast.ASTObject |
dummySource, parent, sourceLocation |
Constructor Summary | |
|
FieldAccessExpr(Expr expr,
Identifier name)
|
|
FieldAccessExpr(Expr expr,
java.lang.String name)
|
protected |
FieldAccessExpr(SourceLocation source)
|
|
FieldAccessExpr(SourceLocation location,
Expr _expr,
Field _field,
boolean _isSuper)
|
|
FieldAccessExpr(SourceLocation source,
Expr expr,
java.lang.String name)
|
|
FieldAccessExpr(SourceLocation source,
Type type,
java.lang.String name)
|
|
FieldAccessExpr(Type type,
java.lang.String name)
|
Method Summary | |
MethodDec |
buildAccessMethod(org.aspectj.compiler.base.InnerAccessFixer w)
Builds a method that would perform the actions of this expression. |
protected void |
cgAssignment(org.aspectj.compiler.base.bcg.CodeBuilder cb)
Generate code to actually assign into this assignable. |
protected void |
cgDupLvalue(org.aspectj.compiler.base.bcg.CodeBuilder cb)
Generates code to duplicate the top lvalue on the stack. |
protected void |
cgDupRvalue(org.aspectj.compiler.base.bcg.CodeBuilder cb)
Generates code to duplicate the top rvalue on the stack and places it BELOW the lvalue that may be just below it. |
protected void |
cgLtoRvalue(org.aspectj.compiler.base.bcg.CodeBuilder cb)
Generate code to remove the lvalue at the top of the stack (if any) and place the appropriate rvalue on the stack. |
protected void |
cgLvalue(org.aspectj.compiler.base.bcg.CodeBuilder cb)
Generate code to place the lvalue of this expression on the top of the stack. |
void |
checkSpec()
|
ASTObject |
copyWalk(CopyWalker walker)
|
protected Type |
discoverType()
|
ASTObject |
fixAccessPost(org.aspectj.compiler.crosscuts.AccessFixer fixer)
|
ASTObject |
getChildAt(int childIndex)
|
int |
getChildCount()
|
java.lang.String |
getChildNameAt(int childIndex)
|
java.lang.String |
getDefaultDisplayName()
|
Expr |
getExpr()
|
Field |
getField()
|
FieldDec |
getFieldDec()
|
java.lang.String |
getId()
|
boolean |
getIsSuper()
|
SemanticObject |
getTarget()
|
Type |
getTargetType()
|
boolean |
hasLegalProtectedAccess(Type fromType)
Section 6.6.2.1 from JLSv2 E.Id requires that E is subtype of S |
boolean |
isBare()
|
ASTObject |
postAssignmentCheck(org.aspectj.compiler.base.AssignmentCheckerPass walker)
|
ASTObject |
postFixAST(org.aspectj.compiler.base.ASTFixerPass fixer)
|
ASTObject |
postInnerAccess(org.aspectj.compiler.base.InnerAccessFixer w)
Converts an expression accessing inaccessable context to one that is legal. |
void |
postInnerInfo(org.aspectj.compiler.base.InnerInfoPass w)
|
ASTObject |
postMove(MovingWalker walker)
|
void |
setChildAt(int childIndex,
ASTObject child)
|
void |
setExpr(Expr _expr)
|
void |
setField(Field _field)
|
void |
setIsSuper(boolean _isSuper)
|
void |
setTarget(SemanticObject newTarget)
|
Expr |
toExpr()
|
void |
unparse(org.aspectj.compiler.base.CodeWriter writer)
|
void |
walkFlow(org.aspectj.compiler.base.FlowCheckerPass w)
|
void |
walkForwardReference(org.aspectj.compiler.base.ForwardReferenceChecker w)
|
Methods inherited from class org.aspectj.compiler.base.ast.AssignableExpr |
cgValue, isIncable, isLhs |
Methods inherited from class org.aspectj.compiler.base.ast.Expr |
assertType, canBeCopied, cgBuffer, cgEffect, cgTest, cgValue, cleanup, getType, isAssignableTo, isConstantFalse, isConstantTrue, isConstantZero, isInConstructorCallExpr, isInExprStmt, isLegalStmt, isMethodConvertableTo, isUltimatelyLiteral, makeQualifiedThis, makeReference, postCopy, setType, showOperatorTypeError, showOperatorTypeError, walkCleanup, walkFrameLoc |
Methods inherited from class org.aspectj.compiler.base.CompilerObject |
getCompiler, getOptions, getTypeManager, getWorld |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected Expr expr
protected Field field
protected boolean isSuper
Constructor Detail |
public FieldAccessExpr(SourceLocation source, Type type, java.lang.String name)
public FieldAccessExpr(SourceLocation source, Expr expr, java.lang.String name)
public FieldAccessExpr(Type type, java.lang.String name)
public FieldAccessExpr(Expr expr, java.lang.String name)
public FieldAccessExpr(Expr expr, Identifier name)
public FieldAccessExpr(SourceLocation location, Expr _expr, Field _field, boolean _isSuper)
protected FieldAccessExpr(SourceLocation source)
Method Detail |
public FieldDec getFieldDec()
protected Type discoverType()
discoverType
in class Expr
public Expr toExpr()
public void walkFlow(org.aspectj.compiler.base.FlowCheckerPass w)
walkFlow
in class ASTObject
public boolean isBare()
public void postInnerInfo(org.aspectj.compiler.base.InnerInfoPass w)
postInnerInfo
in class ASTObject
public boolean hasLegalProtectedAccess(Type fromType)
hasLegalProtectedAccess
in class ASTObject
public void checkSpec()
checkSpec
in class Expr
public void walkForwardReference(org.aspectj.compiler.base.ForwardReferenceChecker w)
walkForwardReference
in class ASTObject
public ASTObject postAssignmentCheck(org.aspectj.compiler.base.AssignmentCheckerPass walker)
postAssignmentCheck
in class ASTObject
public ASTObject fixAccessPost(org.aspectj.compiler.crosscuts.AccessFixer fixer)
fixAccessPost
in class ASTObject
public java.lang.String getId()
public ASTObject postMove(MovingWalker walker)
postMove
in class ASTObject
public ASTObject postFixAST(org.aspectj.compiler.base.ASTFixerPass fixer)
postFixAST
in class ASTObject
public SemanticObject getTarget()
getTarget
in interface SOLink
public void setTarget(SemanticObject newTarget)
setTarget
in interface SOLink
public Type getTargetType()
public void unparse(org.aspectj.compiler.base.CodeWriter writer)
unparse
in class ASTObject
public ASTObject postInnerAccess(org.aspectj.compiler.base.InnerAccessFixer w)
ASTObject
postInnerAccess
in class ASTObject
public MethodDec buildAccessMethod(org.aspectj.compiler.base.InnerAccessFixer w)
ASTObject
PrefixExpr
, PostfixExpr
, FieldAccessExpr
, AssignExpr
, and CallExpr
.
If and when we do cookie methods for constructor, we may also
need to override this in NewInstanceExpr
and ConstructorCallExpr
.
buildAccessMethod
in class ASTObject
protected void cgLvalue(org.aspectj.compiler.base.bcg.CodeBuilder cb)
AssignableExpr
cgLvalue
in class AssignableExpr
protected void cgLtoRvalue(org.aspectj.compiler.base.bcg.CodeBuilder cb)
AssignableExpr
cgLtoRvalue
in class AssignableExpr
protected void cgAssignment(org.aspectj.compiler.base.bcg.CodeBuilder cb)
AssignableExpr
cgAssignment
in class AssignableExpr
protected void cgDupLvalue(org.aspectj.compiler.base.bcg.CodeBuilder cb)
AssignableExpr
cgDupLvalue
in class AssignableExpr
protected void cgDupRvalue(org.aspectj.compiler.base.bcg.CodeBuilder cb)
AssignableExpr
cgDupRvalue
in class AssignableExpr
public Expr getExpr()
public void setExpr(Expr _expr)
public Field getField()
public void setField(Field _field)
public boolean getIsSuper()
public void setIsSuper(boolean _isSuper)
public ASTObject copyWalk(CopyWalker walker)
copyWalk
in class ASTObject
public ASTObject getChildAt(int childIndex)
getChildAt
in class ASTObject
public java.lang.String getChildNameAt(int childIndex)
getChildNameAt
in class ASTObject
public void setChildAt(int childIndex, ASTObject child)
setChildAt
in class ASTObject
public int getChildCount()
getChildCount
in class ASTObject
public java.lang.String getDefaultDisplayName()
getDefaultDisplayName
in class AssignableExpr
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |