|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode
org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement
org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression
org.aspectj.org.eclipse.jdt.internal.compiler.ast.Reference
org.aspectj.org.eclipse.jdt.internal.compiler.ast.NameReference
org.aspectj.org.eclipse.jdt.internal.compiler.ast.QualifiedNameReference
public class QualifiedNameReference
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.InvocationSite |
|---|
InvocationSite.EmptyWithAstNode |
| Nested classes/interfaces inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeConstants |
|---|
TypeConstants.CloseMethodRecord |
| Field Summary | |
|---|---|
TypeBinding |
genericCast
|
int |
indexOfFirstFieldBinding
|
FieldBinding[] |
otherBindings
|
TypeBinding[] |
otherGenericCasts
|
long[] |
sourcePositions
|
SyntheticMethodBinding[] |
syntheticReadAccessors
|
SyntheticMethodBinding |
syntheticWriteAccessor
|
char[][] |
tokens
|
| Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.NameReference |
|---|
actualReceiverType, binding |
| Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Expression |
|---|
constant, implicitConversion, resolvedType, statementEnd |
| Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement |
|---|
COMPLAINED_FAKE_REACHABLE, COMPLAINED_UNREACHABLE, NOT_COMPLAINED |
| Constructor Summary | |
|---|---|
QualifiedNameReference(char[][] tokens,
long[] positions,
int sourceStart,
int sourceEnd)
|
|
| Method Summary | |
|---|---|
FlowInfo |
analyseAssignment(BlockScope currentScope,
FlowContext flowContext,
FlowInfo flowInfo,
Assignment assignment,
boolean isCompound)
|
FlowInfo |
analyseCode(BlockScope currentScope,
FlowContext flowContext,
FlowInfo flowInfo)
|
FlowInfo |
analyseCode(BlockScope currentScope,
FlowContext flowContext,
FlowInfo flowInfo,
boolean valueRequired)
More sophisticated for of the flow analysis used for analyzing expressions, and be able to optimize out portions of expressions where no actual value is required. |
boolean |
checkNPE(BlockScope scope,
FlowContext flowContext,
FlowInfo flowInfo)
Check this expression against potential NPEs, which may occur: if the expression is the receiver in a field access, qualified allocation, array reference or message send incl. |
void |
computeConversion(Scope scope,
TypeBinding runtimeTimeType,
TypeBinding compileTimeType)
Base types need that the widening is explicitly done by the compiler using some bytecode like i2f. |
void |
generateAssignment(BlockScope currentScope,
CodeStream codeStream,
Assignment assignment,
boolean valueRequired)
|
void |
generateCode(BlockScope currentScope,
CodeStream codeStream,
boolean valueRequired)
Every expression is responsible for generating its implicit conversion when necessary. |
void |
generateCompoundAssignment(BlockScope currentScope,
CodeStream codeStream,
Expression expression,
int operator,
int assignmentImplicitConversion,
boolean valueRequired)
|
void |
generatePostIncrement(BlockScope currentScope,
CodeStream codeStream,
CompoundAssignment postIncrement,
boolean valueRequired)
|
FieldBinding |
generateReadSequence(BlockScope currentScope,
CodeStream codeStream)
|
void |
generateReceiver(CodeStream codeStream)
|
TypeBinding[] |
genericTypeArguments()
|
protected FieldBinding |
getCodegenBinding(int index)
|
protected TypeBinding |
getFinalReceiverType()
Returns the receiver type for the final field in sequence (i.e. |
protected TypeBinding |
getGenericCast(int index)
|
char[][] |
getName()
|
TypeBinding |
getOtherFieldBindings(BlockScope scope)
|
boolean |
isEquivalent(Reference reference)
Is the given reference equivalent to the receiver, meaning that both denote the same path of field reads? Used from FlowContext.isNullcheckedFieldAccess(Reference). |
boolean |
isFieldAccess()
|
FieldBinding |
lastFieldBinding()
|
void |
manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope,
FlowInfo flowInfo)
|
void |
manageSyntheticAccessIfNecessary(BlockScope currentScope,
FieldBinding fieldBinding,
int index,
FlowInfo flowInfo)
index is <0 to denote write access emulation |
VariableBinding |
nullAnnotatedVariableBinding(boolean supportTypeAnnotations)
Used on the lhs of an assignment for detecting null spec violation. |
Constant |
optimizedBooleanConstant()
Constant usable for bytecode pattern optimizations, but cannot be inlined since it is not strictly equivalent to the definition of constant expressions. |
TypeBinding |
postConversionType(Scope scope)
Returns the type of the expression after required implicit conversions. |
java.lang.StringBuffer |
printExpression(int indent,
java.lang.StringBuffer output)
|
TypeBinding |
reportError(BlockScope scope)
Normal field binding did not work, try to bind to a field of the delegate receiver. |
TypeBinding |
resolveType(BlockScope scope)
Resolve the type of this expression in the context of a blockScope |
void |
setFieldIndex(int index)
|
protected void |
setGenericCast(int index,
TypeBinding someGenericCast)
|
protected void |
setSyntheticAccessor(FieldBinding fieldBinding,
int index,
SyntheticMethodBinding syntheticAccessor)
|
void |
traverse(ASTVisitor visitor,
BlockScope scope)
Traverse an expression in the context of a blockScope |
void |
traverse(ASTVisitor visitor,
ClassScope scope)
Traverse an expression in the context of a classScope |
java.lang.String |
unboundReferenceErrorName()
|
| Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.NameReference |
|---|
checkEffectiveFinality, fieldBinding, freshInferenceContext, isSuperAccess, isTypeAccess, isTypeReference, setActualReceiverType, setDepth |
| Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Reference |
|---|
checkNullableFieldDereference, fieldStore, nullStatus |
| Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.Statement |
|---|
analyseArguments, branchChainTo, checkAgainstNullTypeAnnotation, complainIfUnreachable, expectedType, findConstructorBinding, generateArguments, getExpressionContext, invocationTargetType, isBoxingCompatible, isEmptyBlock, isKnowDeadCodePattern, isValidJavaStatement, recordExceptionsForEnclosingLambda, resolveCase |
| Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.ast.ASTNode |
|---|
checkInvocationArguments, concreteStatement, copySE8AnnotationsToType, isFieldUseDeprecated, isImplicitThis, isMethodUseDeprecated, isSuper, isThis, isTypeUseDeprecated, isUnqualifiedSuper, printAnnotations, printIndent, printModifiers, receiverIsImplicitThis, resolveAnnotations, resolveAnnotations, resolveAnnotations, resolveDeprecatedAnnotations, resolvePolyExpressionArguments, resolvePolyExpressionArguments, sourceEnd, sourceStart, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.lookup.InvocationSite |
|---|
getExpressionContext, invocationTargetType, receiverIsImplicitThis, sourceEnd, sourceStart |
| Field Detail |
|---|
public char[][] tokens
public long[] sourcePositions
public FieldBinding[] otherBindings
public int indexOfFirstFieldBinding
public SyntheticMethodBinding syntheticWriteAccessor
public SyntheticMethodBinding[] syntheticReadAccessors
public TypeBinding genericCast
public TypeBinding[] otherGenericCasts
| Constructor Detail |
|---|
public QualifiedNameReference(char[][] tokens,
long[] positions,
int sourceStart,
int sourceEnd)
| Method Detail |
|---|
public FlowInfo analyseAssignment(BlockScope currentScope,
FlowContext flowContext,
FlowInfo flowInfo,
Assignment assignment,
boolean isCompound)
analyseAssignment in class Reference
public FlowInfo analyseCode(BlockScope currentScope,
FlowContext flowContext,
FlowInfo flowInfo)
analyseCode in class Reference
public FlowInfo analyseCode(BlockScope currentScope,
FlowContext flowContext,
FlowInfo flowInfo,
boolean valueRequired)
Expression
analyseCode in class Expression
public boolean checkNPE(BlockScope scope,
FlowContext flowContext,
FlowInfo flowInfo)
Expression
checkNPE in class Referencescope - the scope of the analysisflowContext - the current flow contextflowInfo - the upstream flow info; caveat: may get modified
public void computeConversion(Scope scope,
TypeBinding runtimeTimeType,
TypeBinding compileTimeType)
Expression
computeConversion in class ExpressionExpression.computeConversion(org.aspectj.org.eclipse.jdt.internal.compiler.lookup.Scope, org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding, org.aspectj.org.eclipse.jdt.internal.compiler.lookup.TypeBinding)
public void generateAssignment(BlockScope currentScope,
CodeStream codeStream,
Assignment assignment,
boolean valueRequired)
generateAssignment in class Reference
public void generateCode(BlockScope currentScope,
CodeStream codeStream,
boolean valueRequired)
Expression
generateCode in class ExpressioncurrentScope - org.aspectj.org.eclipse.jdt.internal.compiler.lookup.BlockScopecodeStream - org.aspectj.org.eclipse.jdt.internal.compiler.codegen.CodeStreamvalueRequired - boolean
public void generateCompoundAssignment(BlockScope currentScope,
CodeStream codeStream,
Expression expression,
int operator,
int assignmentImplicitConversion,
boolean valueRequired)
generateCompoundAssignment in class Reference
public void generatePostIncrement(BlockScope currentScope,
CodeStream codeStream,
CompoundAssignment postIncrement,
boolean valueRequired)
generatePostIncrement in class Reference
public FieldBinding generateReadSequence(BlockScope currentScope,
CodeStream codeStream)
public void generateReceiver(CodeStream codeStream)
public TypeBinding[] genericTypeArguments()
InvocationSite.genericTypeArguments()protected FieldBinding getCodegenBinding(int index)
protected TypeBinding getFinalReceiverType()
protected TypeBinding getGenericCast(int index)
public TypeBinding getOtherFieldBindings(BlockScope scope)
public boolean isEquivalent(Reference reference)
ReferenceFlowContext.isNullcheckedFieldAccess(Reference).
isEquivalent in class Referencepublic boolean isFieldAccess()
public FieldBinding lastFieldBinding()
lastFieldBinding in class NameReference
public void manageEnclosingInstanceAccessIfNecessary(BlockScope currentScope,
FlowInfo flowInfo)
public void manageSyntheticAccessIfNecessary(BlockScope currentScope,
FieldBinding fieldBinding,
int index,
FlowInfo flowInfo)
public Constant optimizedBooleanConstant()
Expression
optimizedBooleanConstant in class Expressionpublic TypeBinding postConversionType(Scope scope)
Expression
postConversionType in class ExpressionExpression.postConversionType(Scope)
public java.lang.StringBuffer printExpression(int indent,
java.lang.StringBuffer output)
printExpression in class Expressionpublic TypeBinding reportError(BlockScope scope)
public TypeBinding resolveType(BlockScope scope)
Expression
resolveType in class Expressionpublic void setFieldIndex(int index)
setFieldIndex in interface InvocationSitesetFieldIndex in class NameReference
protected void setGenericCast(int index,
TypeBinding someGenericCast)
protected void setSyntheticAccessor(FieldBinding fieldBinding,
int index,
SyntheticMethodBinding syntheticAccessor)
public void traverse(ASTVisitor visitor,
BlockScope scope)
Expression
traverse in class Expression
public void traverse(ASTVisitor visitor,
ClassScope scope)
Expression
traverse in class Expressionpublic java.lang.String unboundReferenceErrorName()
unboundReferenceErrorName in class NameReferencepublic char[][] getName()
getName in class NameReferencepublic VariableBinding nullAnnotatedVariableBinding(boolean supportTypeAnnotations)
Expression
nullAnnotatedVariableBinding in class ExpressionsupportTypeAnnotations - if true this causes any variable binding to be used
independent of declaration annotations (for in-depth analysis of type annotations)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||