Klasse UnconditionalFlowInfo
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.compiler.flow.FlowInfo
org.aspectj.org.eclipse.jdt.internal.compiler.flow.UnconditionalFlowInfo
Record initialization status during definite assignment analysis
No caching of pre-allocated instances.
-
Verschachtelte Klassen - Übersicht
Modifizierer und TypKlasseBeschreibungstatic class
Exception raised when unexpected behavior is detected. -
Feldübersicht
Modifizierer und TypFeldBeschreibungstatic final int
static final boolean
static int
long
long[][]
static final int
static final int
long
static final int
long
int
long
long
long
long
long
Von Klasse geerbte Felder org.aspectj.org.eclipse.jdt.internal.compiler.flow.FlowInfo
DEAD_END, FREE_TYPEVARIABLE, NON_NULL, NULL, NULL_FLAG_MASK, POTENTIALLY_NON_NULL, POTENTIALLY_NULL, POTENTIALLY_UNKNOWN, REACHABLE, tagBits, UNKNOWN, UNREACHABLE, UNREACHABLE_BY_NULLANALYSIS, UNREACHABLE_OR_DEAD, UNROOTED
-
Konstruktorübersicht
-
Methodenübersicht
Modifizierer und TypMethodeBeschreibungvoid
addInitializationsFrom
(FlowInfo inits) Add other inits to this flow info, then return this.addNullInfoFrom
(FlowInfo inits) Add all null information from otherInits to this flow info and return this.Compose other inits over this flow info, then return this.addPotentialNullInfoFrom
(UnconditionalFlowInfo otherInits) Compose other inits over this flow info, then return this.final boolean
Check whether a given local variable is known to be unable to gain a definite non null or definite null status by the use of an enclosing flow info.final boolean
cannotBeNull
(LocalVariableBinding local) Check whether a given local variable is known to be non null, either because it is definitely non null, or because is has been tested against non null.final boolean
Check whether a given local variable is known to be null, either because it is definitely null, or because is has been tested against null.copy()
Return a deep copy of the current instance.Discard definite inits and potential inits from this, then return this.Remove local variables information from this flow info and return this.static UnconditionalFlowInfo
fakeInitializedFlowInfo
(int localsCount, int maxFieldCount) void
growSpace
(int newLength, int copyStart, int copyLength) final boolean
Check if any null info has been recorded for a given local variable.Return the flow info that would result from the path associated to the value false for the condition expression that generated this flow info.Return the flow info that would result from the path associated to the value true for the condition expression that generated this flow info.final boolean
isDefinitelyAssigned
(FieldBinding field) Check status of definite assignment for a field.final boolean
Check status of definite assignment for a local.final boolean
Check status of definite non-null value for a given local variable.final boolean
Check status of definite null value for a given local variable.final boolean
Check status of definite unknown value for a given local variable.final boolean
Check status of potential assignment for a field.final boolean
Check status of potential assignment for a local variable.final boolean
Check status of potential null assignment for a local.final boolean
Check status of potential null assignment for a local.final boolean
Return true if the given local may have been assigned to an unknown value.final boolean
Return true if the given local is protected by a test against a non null value.final boolean
Return true if the given local is protected by a test against null.protected static boolean
Asserts that the given boolean istrue
.void
Record that a local variable got checked to be non null.void
Record that a local variable got checked to be null.void
Record a field got definitely assigned.void
Record a local got definitely assigned.void
Record a local got definitely assigned to a non-null value.void
Record a local got definitely assigned to null.void
Mark a local as having been assigned to an unknown value.void
Record a local may have got assigned to non-null (set the bit on existing info).void
Record a local may have got assigned to null (set the bit on existing info).void
Mark a local as potentially having been assigned to an unknown value.mergeDefiniteInitsWith
(UnconditionalFlowInfo otherInits) mergedWith
(UnconditionalFlowInfo otherInits) Return the intersection of this and otherInits, that is one of: the receiver updated in the following way: intersection of definitely assigned variables, union of potentially assigned variables, similar operations for null, or the receiver or otherInits if the other one is non reachable. otherInits is not affected, and is not returned either (no need to protect the result).Return a copy of this unconditional flow info, deprived from its null info.void
resetAssignmentInfo
(int position) void
Resets the definite and potential initialization info for the given local variablevoid
Reset all null-information about a given local.Return a flow info that carries the same information as the result ofinitsWhenTrue
, but warrantied to be different from this.
Caveat: side effects on the result may affect components of this.setReachMode
(int reachMode) Set this flow info reach mode and return this.toString()
Return a new flow info that holds the same information as this would after a call to unconditionalInits, but leaving this info unaffected.Return a new flow info that holds the same information as this would after a call tounconditionalInits
followed by the erasure of fields specific information, but leaving this flow info unaffected.Return a flow info that merges the possible paths of execution described by this flow info.Return a new flow info that holds the same information as this would after a call tounconditionalInits
, but leaving this info unaffected.Von Klasse geerbte Methoden org.aspectj.org.eclipse.jdt.internal.compiler.flow.FlowInfo
asNegatedCondition, conditional, initial, markNullStatus, mergedOptimizedBranches, mergedOptimizedBranchesIfElse, mergeNullStatus, nullStatus, reachMode, tagBitsToNullStatus
-
Felddetails
-
COVERAGE_TEST_FLAG
public static final boolean COVERAGE_TEST_FLAG- Siehe auch:
-
CoverageTestId
public static int CoverageTestId -
definiteInits
public long definiteInits -
potentialInits
public long potentialInits -
nullBit1
public long nullBit1 -
nullBit2
public long nullBit2 -
nullBit3
public long nullBit3 -
nullBit4
public long nullBit4 -
iNBit
public long iNBit -
iNNBit
public long iNNBit -
extraLength
public static final int extraLength- Siehe auch:
-
extra
public long[][] extra -
maxFieldCount
public int maxFieldCount -
BitCacheSize
public static final int BitCacheSize- Siehe auch:
-
IN
public static final int IN- Siehe auch:
-
INN
public static final int INN- Siehe auch:
-
-
Konstruktordetails
-
UnconditionalFlowInfo
public UnconditionalFlowInfo()
-
-
Methodendetails
-
fakeInitializedFlowInfo
-
addInitializationsFrom
Beschreibung aus Klasse kopiert:FlowInfo
Add other inits to this flow info, then return this. The operation semantics are to match as closely as possible the application to this flow info of all the operations that resulted into otherInits.- Angegeben von:
addInitializationsFrom
in KlasseFlowInfo
- Parameter:
inits
- other inits to add to this- Gibt zurück:
- this, modified according to otherInits information
-
addNullInfoFrom
Beschreibung aus Klasse kopiert:FlowInfo
Add all null information from otherInits to this flow info and return this. The operation models the effect of an unconditional sequence of this flow info and otherInits.- Angegeben von:
addNullInfoFrom
in KlasseFlowInfo
-
addPotentialInitializationsFrom
Beschreibung aus Klasse kopiert:FlowInfo
Compose other inits over this flow info, then return this. The operation semantics are to wave into this flow info the consequences of a possible path into the operations that resulted into otherInits. The fact that this path may be left unexecuted under peculiar conditions results into less specific results thanaddInitializationsFrom
.- Angegeben von:
addPotentialInitializationsFrom
in KlasseFlowInfo
- Parameter:
inits
- other inits to compose over this- Gibt zurück:
- this, modified according to otherInits information
-
addPotentialNullInfoFrom
Compose other inits over this flow info, then return this. The operation semantics are to wave into this flow info the consequences upon null information of a possible path into the operations that resulted into otherInits. The fact that this path may be left unexecuted under peculiar conditions results into less specific results thanaddInitializationsFrom
; moreover, only the null information is affected.- Parameter:
otherInits
- other null inits to compose over this- Gibt zurück:
- this, modified according to otherInits information
-
cannotBeDefinitelyNullOrNonNull
Beschreibung aus Klasse kopiert:FlowInfo
Check whether a given local variable is known to be unable to gain a definite non null or definite null status by the use of an enclosing flow info. The semantics are that if the current flow info marks the variable as potentially unknown or else as being both potentially null and potentially non null, then it won't ever be promoted as definitely null or definitely non null. (It could still get promoted to definite unknown).- Setzt außer Kraft:
cannotBeDefinitelyNullOrNonNull
in KlasseFlowInfo
- Parameter:
local
- the variable to check- Gibt zurück:
- true iff this flow info prevents local from being promoted to definite non null or definite null against an enclosing flow info
-
cannotBeNull
Beschreibung aus Klasse kopiert:FlowInfo
Check whether a given local variable is known to be non null, either because it is definitely non null, or because is has been tested against non null.- Setzt außer Kraft:
cannotBeNull
in KlasseFlowInfo
- Parameter:
local
- the variable to ckeck- Gibt zurück:
- true iff local cannot be null for this flow info
-
canOnlyBeNull
Beschreibung aus Klasse kopiert:FlowInfo
Check whether a given local variable is known to be null, either because it is definitely null, or because is has been tested against null.- Setzt außer Kraft:
canOnlyBeNull
in KlasseFlowInfo
- Parameter:
local
- the variable to ckeck- Gibt zurück:
- true iff local can only be null for this flow info
-
copy
Beschreibung aus Klasse kopiert:FlowInfo
Return a deep copy of the current instance. -
discardInitializationInfo
Discard definite inits and potential inits from this, then return this. The returned flow info only holds null related information.- Gibt zurück:
- this flow info, minus definite inits and potential inits
-
discardNonFieldInitializations
Remove local variables information from this flow info and return this.- Gibt zurück:
- this, deprived from any local variable information
-
initsWhenFalse
Beschreibung aus Klasse kopiert:FlowInfo
Return the flow info that would result from the path associated to the value false for the condition expression that generated this flow info. May be this flow info if it is not an instance ofConditionalFlowInfo
. May have a side effect on subparts of this flow info (subtrees get merged).- Angegeben von:
initsWhenFalse
in KlasseFlowInfo
- Gibt zurück:
- the flow info associated to the false branch of the condition that generated this flow info
-
initsWhenTrue
Beschreibung aus Klasse kopiert:FlowInfo
Return the flow info that would result from the path associated to the value true for the condition expression that generated this flow info. May be this flow info if it is not an instance ofConditionalFlowInfo
. May have a side effect on subparts of this flow info (subtrees get merged).- Angegeben von:
initsWhenTrue
in KlasseFlowInfo
- Gibt zurück:
- the flow info associated to the true branch of the condition that generated this flow info
-
isDefinitelyAssigned
Beschreibung aus Klasse kopiert:FlowInfo
Check status of definite assignment for a field.- Angegeben von:
isDefinitelyAssigned
in KlasseFlowInfo
-
isDefinitelyAssigned
Beschreibung aus Klasse kopiert:FlowInfo
Check status of definite assignment for a local.- Angegeben von:
isDefinitelyAssigned
in KlasseFlowInfo
-
isDefinitelyNonNull
Beschreibung aus Klasse kopiert:FlowInfo
Check status of definite non-null value for a given local variable.- Angegeben von:
isDefinitelyNonNull
in KlasseFlowInfo
- Parameter:
local
- the variable to ckeck- Gibt zurück:
- true iff local is definitely non null for this flow info
-
isDefinitelyNull
Beschreibung aus Klasse kopiert:FlowInfo
Check status of definite null value for a given local variable.- Angegeben von:
isDefinitelyNull
in KlasseFlowInfo
- Parameter:
local
- the variable to ckeck- Gibt zurück:
- true iff local is definitely null for this flow info
-
isDefinitelyUnknown
Beschreibung aus Klasse kopiert:FlowInfo
Check status of definite unknown value for a given local variable.- Angegeben von:
isDefinitelyUnknown
in KlasseFlowInfo
- Parameter:
local
- the variable to ckeck- Gibt zurück:
- true iff local is definitely unknown for this flow info
-
hasNullInfoFor
Beschreibung aus Klasse kopiert:FlowInfo
Check if any null info has been recorded for a given local variable. Here even recording of 'UNKNOWN' is considered as null info.- Angegeben von:
hasNullInfoFor
in KlasseFlowInfo
-
isPotentiallyAssigned
Beschreibung aus Klasse kopiert:FlowInfo
Check status of potential assignment for a field.- Angegeben von:
isPotentiallyAssigned
in KlasseFlowInfo
-
isPotentiallyAssigned
Beschreibung aus Klasse kopiert:FlowInfo
Check status of potential assignment for a local variable.- Angegeben von:
isPotentiallyAssigned
in KlasseFlowInfo
-
isPotentiallyNonNull
Beschreibung aus Klasse kopiert:FlowInfo
Check status of potential null assignment for a local. Return true if there is a reasonable expectation that the variable be non null at this point.- Angegeben von:
isPotentiallyNonNull
in KlasseFlowInfo
- Parameter:
local
- LocalVariableBinding - the binding for the checked local- Gibt zurück:
- true if there is a reasonable expectation that local be non null at this point
-
isPotentiallyNull
Beschreibung aus Klasse kopiert:FlowInfo
Check status of potential null assignment for a local. Return true if there is a reasonable expectation that the variable be null at this point. This includes the protected null case, so as to augment diagnostics, but does not really check that someone deliberately assigned to null on any specific path- Angegeben von:
isPotentiallyNull
in KlasseFlowInfo
- Parameter:
local
- LocalVariableBinding - the binding for the checked local- Gibt zurück:
- true if there is a reasonable expectation that local be null at this point
-
isPotentiallyUnknown
Beschreibung aus Klasse kopiert:FlowInfo
Return true if the given local may have been assigned to an unknown value.- Angegeben von:
isPotentiallyUnknown
in KlasseFlowInfo
- Parameter:
local
- the local to check- Gibt zurück:
- true if the given local may have been assigned to an unknown value
-
isProtectedNonNull
Beschreibung aus Klasse kopiert:FlowInfo
Return true if the given local is protected by a test against a non null value.- Angegeben von:
isProtectedNonNull
in KlasseFlowInfo
- Parameter:
local
- the local to check- Gibt zurück:
- true if the given local is protected by a test against a non null
-
isProtectedNull
Beschreibung aus Klasse kopiert:FlowInfo
Return true if the given local is protected by a test against null.- Angegeben von:
isProtectedNull
in KlasseFlowInfo
- Parameter:
local
- the local to check- Gibt zurück:
- true if the given local is protected by a test against null
-
isTrue
Asserts that the given boolean istrue
. If this is not the case, some kind of unchecked exception is thrown. The given message is included in that exception, to aid debugging.- Parameter:
expression
- the outcome of the checkmessage
- the message to include in the exception- Gibt zurück:
true
if the check passes (does not return if the check fails)
-
markAsComparedEqualToNonNull
Beschreibung aus Klasse kopiert:FlowInfo
Record that a local variable got checked to be non null.- Angegeben von:
markAsComparedEqualToNonNull
in KlasseFlowInfo
- Parameter:
local
- the checked local variable
-
markAsComparedEqualToNull
Beschreibung aus Klasse kopiert:FlowInfo
Record that a local variable got checked to be null.- Angegeben von:
markAsComparedEqualToNull
in KlasseFlowInfo
- Parameter:
local
- the checked local variable
-
markAsDefinitelyAssigned
Beschreibung aus Klasse kopiert:FlowInfo
Record a field got definitely assigned.- Angegeben von:
markAsDefinitelyAssigned
in KlasseFlowInfo
-
markAsDefinitelyAssigned
Beschreibung aus Klasse kopiert:FlowInfo
Record a local got definitely assigned.- Angegeben von:
markAsDefinitelyAssigned
in KlasseFlowInfo
-
markAsDefinitelyNonNull
Beschreibung aus Klasse kopiert:FlowInfo
Record a local got definitely assigned to a non-null value.- Angegeben von:
markAsDefinitelyNonNull
in KlasseFlowInfo
-
markAsDefinitelyNull
Beschreibung aus Klasse kopiert:FlowInfo
Record a local got definitely assigned to null.- Angegeben von:
markAsDefinitelyNull
in KlasseFlowInfo
-
markAsDefinitelyUnknown
Mark a local as having been assigned to an unknown value.- Angegeben von:
markAsDefinitelyUnknown
in KlasseFlowInfo
- Parameter:
local
- the local to mark
-
resetNullInfo
Beschreibung aus Klasse kopiert:FlowInfo
Reset all null-information about a given local.- Angegeben von:
resetNullInfo
in KlasseFlowInfo
-
markPotentiallyUnknownBit
Mark a local as potentially having been assigned to an unknown value.- Angegeben von:
markPotentiallyUnknownBit
in KlasseFlowInfo
- Parameter:
local
- the local to mark
-
markPotentiallyNullBit
Beschreibung aus Klasse kopiert:FlowInfo
Record a local may have got assigned to null (set the bit on existing info).- Angegeben von:
markPotentiallyNullBit
in KlasseFlowInfo
-
markPotentiallyNonNullBit
Beschreibung aus Klasse kopiert:FlowInfo
Record a local may have got assigned to non-null (set the bit on existing info).- Angegeben von:
markPotentiallyNonNullBit
in KlasseFlowInfo
-
mergedWith
Beschreibung aus Klasse kopiert:FlowInfo
Return the intersection of this and otherInits, that is one of:- the receiver updated in the following way:
- intersection of definitely assigned variables,
- union of potentially assigned variables,
- similar operations for null,
- or the receiver or otherInits if the other one is non reachable.
- Angegeben von:
mergedWith
in KlasseFlowInfo
- Parameter:
otherInits
- the flow info to merge with this- Gibt zurück:
- the intersection of this and otherInits.
- the receiver updated in the following way:
-
nullInfoLessUnconditionalCopy
Beschreibung aus Klasse kopiert:FlowInfo
Return a copy of this unconditional flow info, deprived from its null info.DEAD_END
is returned unmodified.- Angegeben von:
nullInfoLessUnconditionalCopy
in KlasseFlowInfo
- Gibt zurück:
- a copy of this unconditional flow info deprived from its null info
-
safeInitsWhenTrue
Beschreibung aus Klasse kopiert:FlowInfo
Return a flow info that carries the same information as the result ofinitsWhenTrue
, but warrantied to be different from this.
Caveat: side effects on the result may affect components of this.- Angegeben von:
safeInitsWhenTrue
in KlasseFlowInfo
- Gibt zurück:
- the result of initsWhenTrue or a copy of it
-
setReachMode
Beschreibung aus Klasse kopiert:FlowInfo
Set this flow info reach mode and return this.- Angegeben von:
setReachMode
in KlasseFlowInfo
- Parameter:
reachMode
- one ofREACHABLE
,UNREACHABLE_OR_DEAD
,UNREACHABLE_BY_NULLANALYSIS
orUNREACHABLE
- Gibt zurück:
- this, with the reach mode set to reachMode
-
toString
-
unconditionalCopy
Beschreibung aus Klasse kopiert:FlowInfo
Return a new flow info that holds the same information as this would after a call to unconditionalInits, but leaving this info unaffected. Moreover, the result can be modified without affecting this.- Angegeben von:
unconditionalCopy
in KlasseFlowInfo
- Gibt zurück:
- a new flow info carrying this unconditional flow info
-
unconditionalFieldLessCopy
Beschreibung aus Klasse kopiert:FlowInfo
Return a new flow info that holds the same information as this would after a call tounconditionalInits
followed by the erasure of fields specific information, but leaving this flow info unaffected.- Angegeben von:
unconditionalFieldLessCopy
in KlasseFlowInfo
- Gibt zurück:
- a new flow info carrying the unconditional flow info for local variables
-
unconditionalInits
Beschreibung aus Klasse kopiert:FlowInfo
Return a flow info that merges the possible paths of execution described by this flow info. In case of an unconditional flow info, return this. In case of a conditional flow info, merge branches recursively. Caveat: this may be affected, and modifying the result may affect this.- Angegeben von:
unconditionalInits
in KlasseFlowInfo
- Gibt zurück:
- a flow info that merges the possible paths of execution described by this
-
unconditionalInitsWithoutSideEffect
Beschreibung aus Klasse kopiert:FlowInfo
Return a new flow info that holds the same information as this would after a call tounconditionalInits
, but leaving this info unaffected. Side effects on the result might affect this though (consider it as read only).- Angegeben von:
unconditionalInitsWithoutSideEffect
in KlasseFlowInfo
- Gibt zurück:
- a flow info carrying this unconditional flow info
-
mergeDefiniteInitsWith
- Angegeben von:
mergeDefiniteInitsWith
in KlasseFlowInfo
-
resetAssignmentInfo
Beschreibung aus Klasse kopiert:FlowInfo
Resets the definite and potential initialization info for the given local variable- Angegeben von:
resetAssignmentInfo
in KlasseFlowInfo
- Parameter:
local
-
-
resetAssignmentInfo
public void resetAssignmentInfo(int position) -
growSpace
public void growSpace(int newLength, int copyStart, int copyLength) -
acceptAllIncomingNullness
public void acceptAllIncomingNullness()
-