Package arrow. meta. plugins. analysis. phases. analysis. solver. check. model
Types
Check Data
Link copied to clipboard
data class CheckData(context: ResolutionContext, returnPoints: ReturnPoints, varInfo: CurrentVarInfo, branch: CurrentBranch)
Content copied to clipboard
Control Flow Fn
Link copied to clipboard
data class ControlFlowFn(target: Expression?, body: Expression, argumentName: String, returnBehavior: ControlFlowFn.ReturnBehavior)
Content copied to clipboard
Current Branch
Link copied to clipboard
Current Var Info
Link copied to clipboard
Explicit Block Return
Link copied to clipboard
Explicit 'return', maybe with a name
Explicit Loop Return
Link copied to clipboard
'break' or 'continue' inside a loop
Explicit Return
Link copied to clipboard
This encompasses all possible was to exit a block: 'return', 'break', 'continue'
Explicit Throw Return
Link copied to clipboard
'throw'
Return Points
Link copied to clipboard
data class ReturnPoints(topMostReturnPointVariableName: Pair<String?, ObjectFormula>, namedReturnPointVariableNames: Map<String, ObjectFormula>)
Content copied to clipboard
Maps return points to the SMT variables representing that place.
Simple Condition
Link copied to clipboard
class SimpleCondition(predicate: Expression?, isElse: Boolean, body: Expression, whole: Element) : Condition
Content copied to clipboard
State After
Link copied to clipboard
Describes the state of the analysis after a check:
Subject Condition
Link copied to clipboard
class SubjectCondition(check: WhenCondition?, isElse: Boolean, body: Expression, whole: Element) : Condition
Content copied to clipboard
Functions
no Return
Link copied to clipboard
Execute some operation but keep the overall state the same