protected static class DefiniteAssignmentChecker.ClassBodyInfo
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
java.util.List<ConstructorDecl> |
allConstructors
List of all the constructors.
|
java.util.Map<ConstructorInstance,ConstructorInstance> |
constructorCalls
Map from ConstructorInstances to ConstructorInstances detailing
which constructors call which constructors.
|
java.util.Set<ConstructorDecl> |
constructorsCannotTerminateNormally
Set of all constructors that cannot terminate normally.
|
ClassType |
currClass
The current class being processed.
|
java.util.Map<FieldInstance,DefiniteAssignmentChecker.AssignmentStatus> |
currClassFinalFieldAssStatuses
A Map of all the final fields in the class currently being processed
to DefiniteAssignments.
|
CodeNode |
currCodeDecl
The current CodeNode being processed by the dataflow equations
|
java.util.Map<ConstructorInstance,java.util.Set<FieldInstance>> |
fieldsConstructorInitializes
Map from ConstructorInstances to Sets of FieldInstances, detailing
which final non-static fields each constructor initializes.
|
java.util.Set<LocalInstance> |
localDeclarations
Set of LocalInstances that we have seen declarations for in this
class.
|
java.util.Map<ClassBody,java.util.Set<LocalInstance>> |
localsUsedInClassBodies
Map from
ClassBody s to Set s of
LocalInstance s. |
DefiniteAssignmentChecker.ClassBodyInfo |
outer
The info for the outer ClassBody.
|
java.util.Set<LocalInstance> |
outerLocalsUsed
Set of LocalInstances from the outer class body that were used
during the declaration of this class.
|
Modifier | Constructor and Description |
---|---|
protected |
DefiniteAssignmentChecker.ClassBodyInfo() |
public DefiniteAssignmentChecker.ClassBodyInfo outer
ClassBodyInfo
s
form a stack.public CodeNode currCodeDecl
public ClassType currClass
public java.util.Map<FieldInstance,DefiniteAssignmentChecker.AssignmentStatus> currClassFinalFieldAssStatuses
public java.util.List<ConstructorDecl> allConstructors
public java.util.Set<ConstructorDecl> constructorsCannotTerminateNormally
public java.util.Map<ConstructorInstance,ConstructorInstance> constructorCalls
public java.util.Map<ConstructorInstance,java.util.Set<FieldInstance>> fieldsConstructorInitializes
public java.util.Set<LocalInstance> outerLocalsUsed
localsUsedInClassBodies
public java.util.Map<ClassBody,java.util.Set<LocalInstance>> localsUsedInClassBodies
ClassBody
s to Set
s of
LocalInstance
s. If localsUsedInClassBodies(C) = S, then
the class body C is an inner class declared in the current code
declaration, and S is the set of LocalInstances that are defined
in the current code declaration, but are used in the declaration
of the class C. We need this information in order to ensure that
these local variables are definitely assigned before the class
declaration of C.public java.util.Set<LocalInstance> localDeclarations