Class VarInitializationVerifier
java.lang.Object
gw.internal.gosu.parser.statements.VarInitializationVerifier
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidassignTerminalStatement(ArrayList<AssignmentOrReference> assignments, IStatement stmt) static booleandoStatementsTerminate(List<? extends IStatement> statements) private IParsedElementfindBreakStatementContext(ITerminalStatement terminal) private IParsedElementprivate IParsedElementprivate IStatementprivate IParsedElementfindFirstEnclosing(IParsedElement csr, Class[] classes) private List<IStatement>findTrailingStmts(IStatement enclosingStatement, IVarStatement finalVar) getAssignedState(ISymbol sym, IParsedElement s, ArrayList<AssignmentOrReference> assignments, VarInitializationVerifier.AssignedState localState) getAssignedStateForStatements(ISymbol sym, ArrayList<AssignmentOrReference> assignments, IStatement[] statements, VarInitializationVerifier.AssignedState localState) private IParsedElementgetTerminalContext(ITerminalStatement terminal) private IParsedElementprivate boolean(package private) static booleanisStatementContainedIn(IParsedElement stmt, IParsedElement container) private voidmarkErrorsOnAssignmentsToFinal(IVarStatement varStmt, ArrayList<AssignmentOrReference> assignments) private voidmarkErrorsOnBadAssignmentsAndReferences(IVarStatement varStmt, boolean bField, boolean bFinal, ArrayList<AssignmentOrReference> assignments) private voidverifyFields(IGosuClassInternal gsClass) static voidverifyFinalFields(IGosuClass gsClass) Verifies initialization of final fields in the provided class and, recursively, all nested inner classes: Verifies that a final field is fully initialized either in the declaration or in the constructor[s] Verifies that an assignment to a final field is mutually exclusive wrt other assignments to the field Verifies that a reference to a final field is in a position in the source where the final field is fully initializedprivate voidverifyInstanceField(IGosuClassInternal gsClass, VarStatement varStmt) verifyInstanceFieldInConstructor(VarStatement varStmt, boolean bAssigned, VarInitializationVerifier.AssignedState overall, DynamicFunctionSymbol dfs) private voidverifyInstanceFieldInOtherInstanceFields(IGosuClassInternal gsClass, VarStatement varStmt) private voidverifyLocals(IGosuClassInternal gsClass) private voidprivate voidverifyLocalVar(IVarStatement varStmt) static voidverifyLocalVars(IGosuClass gsClass, boolean bFinalOnly) Verifies initialization of local vars in the provided class and, recursively, all nested inner classes: Verifies that a final local var is fully initialized either in the declaration or in the scope of the var Verifies that an assignment to a final local var is mutually exclusive wrt other assignments to the var Verifies that a reference to any local var, not just finals, is in a position in the source where the var is fully initializedprivate voidverifyStaticField(IGosuClassInternal gsClass, VarStatement varStmt) private voidverifyVar(IVarStatement varStmt, boolean bField, boolean bFinal, boolean bAssigned, ArrayList<AssignmentOrReference> assignments)
-
Field Details
-
_bFinalOnly
private boolean _bFinalOnly
-
-
Constructor Details
-
VarInitializationVerifier
private VarInitializationVerifier(boolean bFinalOnly)
-
-
Method Details
-
isFinalOnly
private boolean isFinalOnly() -
verifyFinalFields
Verifies initialization of final fields in the provided class and, recursively, all nested inner classes:- Verifies that a final field is fully initialized either in the declaration or in the constructor[s]
- Verifies that an assignment to a final field is mutually exclusive wrt other assignments to the field
- Verifies that a reference to a final field is in a position in the source where the final field is fully initialized
-
verifyLocalVars
Verifies initialization of local vars in the provided class and, recursively, all nested inner classes:- Verifies that a final local var is fully initialized either in the declaration or in the scope of the var
- Verifies that an assignment to a final local var is mutually exclusive wrt other assignments to the var
- Verifies that a reference to any local var, not just finals, is in a position in the source where the var is fully initialized
-
verifyLocals
-
verifyLocalsRecursively
-
verifyLocalVar
-
findTrailingStmts
-
findEnclosingStatement
-
verifyFields
-
verifyInstanceField
-
verifyInstanceFieldInOtherInstanceFields
private void verifyInstanceFieldInOtherInstanceFields(IGosuClassInternal gsClass, VarStatement varStmt) -
verifyInstanceFieldInConstructor
private VarInitializationVerifier.AssignedState verifyInstanceFieldInConstructor(VarStatement varStmt, boolean bAssigned, VarInitializationVerifier.AssignedState overall, DynamicFunctionSymbol dfs) -
verifyVar
private void verifyVar(IVarStatement varStmt, boolean bField, boolean bFinal, boolean bAssigned, ArrayList<AssignmentOrReference> assignments) -
markErrorsOnAssignmentsToFinal
private void markErrorsOnAssignmentsToFinal(IVarStatement varStmt, ArrayList<AssignmentOrReference> assignments) -
markErrorsOnBadAssignmentsAndReferences
private void markErrorsOnBadAssignmentsAndReferences(IVarStatement varStmt, boolean bField, boolean bFinal, ArrayList<AssignmentOrReference> assignments) -
verifyStaticField
-
getAssignedState
private VarInitializationVerifier.AssignedState getAssignedState(ISymbol sym, IParsedElement s, ArrayList<AssignmentOrReference> assignments, VarInitializationVerifier.AssignedState localState) -
doStatementsTerminate
-
getTerminalParent
-
isStatementContainedIn
-
getAssignedStateForStatements
private VarInitializationVerifier.AssignedState getAssignedStateForStatements(ISymbol sym, ArrayList<AssignmentOrReference> assignments, IStatement[] statements, VarInitializationVerifier.AssignedState localState) -
assignTerminalStatement
-
getTerminalContext
-
findEnclosingFunctionStatement
-
findContinueStatementContext
-
findBreakStatementContext
-
findFirstEnclosing
-