5 instantiations of LocalState
Microsoft.CodeAnalysis.CSharp (5)
FlowAnalysis\NullableWalker.cs (5)
13174
return new
LocalState
(snapshot.Id, container, snapshot.State.Clone());
13203
return new
LocalState
(variables.Id, container, createBitVectorWithNotNulls(capacity, reachable: true));
13226
return new
LocalState
(variables.Id, container, CreateBitVector(reachable));
13232
return new
LocalState
(variables.Id, container: new Boxed(this), CreateBitVector(reachable: true));
13432
return new
LocalState
(Id, container, _state.Clone());
141 references to LocalState
Microsoft.CodeAnalysis.CSharp (141)
FlowAnalysis\NullableWalker.cs (119)
27
: LocalDataFlowPass<NullableWalker.
LocalState
, NullableWalker.LocalFunctionState>
123
public readonly Optional<
LocalState
> StateForLambda;
139
public VisitResult(TypeWithState rValueType, TypeWithAnnotations lValueType, Optional<
LocalState
> stateForLambda)
272
/// The delegate is invoked by <see cref="VisitConversion(BoundConversion, BoundExpression, Conversion, TypeWithAnnotations, TypeWithState, bool, bool, bool, AssignmentKind, ParameterSymbol, bool, bool, bool, bool, Optional<
LocalState
>,bool, Location, ArrayBuilder<VisitResult>)"/>.
661
void enforceMemberNotNull(SyntaxNode? syntaxOpt,
LocalState
state)
742
void checkMemberStateOnConstructorExit(MethodSymbol constructor, Symbol member,
LocalState
state, int thisSlot, Location? exitLocation, ImmutableArray<string> membersWithStateEnforcedByRequiredMembers, bool forcePropertyAnalysis)
1079
private void EnforceMemberNotNullOnMember(SyntaxNode? syntaxOpt,
LocalState
state, MethodSymbol method, string memberName)
1129
void enforceMemberNotNullWhenIfAffected(SyntaxNode? syntaxOpt, bool sense, ImmutableArray<Symbol> members,
LocalState
state,
LocalState
otherState)
1141
void enforceMemberNotNullWhen(SyntaxNode? syntaxOpt, bool sense,
LocalState
state)
1157
private void ReportFailedMemberNotNullIfNeeded(SyntaxNode? syntaxOpt, bool sense, Symbol member,
LocalState
state)
1166
private bool FailsMemberNotNullExpectation(Symbol member,
LocalState
state)
1297
private void EnforceParameterNotNullOnExit(SyntaxNode? syntaxOpt,
LocalState
state)
1343
private void EnforceParameterNotNullWhenOnExit(SyntaxNode syntax, ImmutableArray<ParameterSymbol> parameters, bool sense,
LocalState
stateWhen)
1356
private void ReportParameterIfBadConditionalState(SyntaxNode syntax, ParameterSymbol parameter, bool sense,
LocalState
stateWhen)
1365
bool parameterHasBadConditionalState(ParameterSymbol parameter, bool sense,
LocalState
stateWhen)
1403
private void EnforceNotNullIfNotNull(SyntaxNode? syntaxOpt,
LocalState
state, ImmutableArray<ParameterSymbol> parameters, ImmutableHashSet<string> inputParamNames, NullableFlowState outputState, ParameterSymbol? outputParam)
1706
Analyze(walker, symbol, diagnostics: null,
LocalState
.Create(localState), snapshotBuilderOpt: newSnapshotBuilder);
1827
var
localState =
LocalState
.Create(initialState.VariableNullableStates).CreateNestedMethodState(variables);
1880
Analyze(walker, symbol, diagnostics, initialState is null ? (Optional<
LocalState
>)default :
LocalState
.Create(initialState.VariableNullableStates), snapshotBuilderOpt, requiresAnalysis);
1897
Optional<
LocalState
> initialState,
1991
private NullableFlowState GetState(ref
LocalState
state, int slot)
2000
private void SetState(ref
LocalState
state, int slot, NullableFlowState value, bool useNotNullsAsDefault = false)
2009
private void NormalizeIfNeeded(ref
LocalState
state, int slot, bool useNotNullsAsDefault)
2014
protected override void Normalize(ref
LocalState
state)
2022
private NullableFlowState GetDefaultState(ref
LocalState
state, int slot)
2830
private void SetStateAndTrackForFinally(ref
LocalState
state, int slot, NullableFlowState newState)
2836
var
tryState = NonMonotonicState.Value;
2845
protected override void JoinTryBlockState(ref
LocalState
self, ref
LocalState
other)
2847
var
tryState = other.GetStateForVariables(self.Id);
2941
protected override
LocalState
TopState()
2943
var
state =
LocalState
.ReachableState(_variables);
2948
protected override
LocalState
UnreachableState()
2950
return
LocalState
.UnreachableState(_variables);
2953
protected override
LocalState
ReachableBottomState()
2956
return
LocalState
.ReachableStateWithNotNulls(_variables);
2989
var
parameterDefaultsNotAssignedState = State.Clone();
3114
var
joinedState = this.StateWhenTrue.Clone();
3346
var
state = TopState();
3372
var
startingState = localFunctionState.StartingState;
3415
LocalState
state,
3441
var
oldState = this.State;
3518
void enforceMemberNotNull(SyntaxNode? syntax,
LocalState
state)
3545
var
state = State.GetStateForVariables(localFunctionState.StartingState.Id);
3659
var
currentState = State;
4691
private void SetNotNullResultForLambda(BoundExpression node,
LocalState
stateForLambda)
5191
var
stateAfterLeft = this.State;
5194
var
stateWhenNotNull = this.State;
5250
LocalState
getUnconditionalStateWhenNotNull(BoundExpression otherOperand, PossiblyConditionalState conditionalStateWhenNotNull)
5252
LocalState
stateWhenNotNull;
5288
var
stateWhenNotNull = getUnconditionalStateWhenNotNull(leftOperand, conditionalStateWhenNotNull);
5621
ref
LocalState
stateToUpdate = ref whenTrue ? ref this.StateWhenTrue : ref this.StateWhenFalse;
5627
protected override bool VisitInterpolatedStringHandlerParts(BoundInterpolatedStringBase node, bool usesBoolReturns, bool firstPartIsConditional, ref
LocalState
shortCircuitState)
5732
private void MarkSlotsAsNotNull(ArrayBuilder<int> slots, ref
LocalState
stateToUpdate)
5740
private void LearnFromNonNullTest(BoundExpression expression, ref
LocalState
state)
5763
private void LearnFromNonNullTest(int slot, ref
LocalState
state)
5768
private void LearnFromNullTest(BoundExpression expression, ref
LocalState
state)
5786
private void LearnFromNullTest(int slot, TypeSymbol? expressionType, ref
LocalState
state, bool markDependentSlotsNotNull)
5806
private void MarkDependentSlotsNotNull(int slot, TypeSymbol expressionType, ref
LocalState
state, int depth = 2)
5887
var
leftState = this.State.Clone();
6106
var
savedState = this.State.Clone();
6215
var
consequenceState = this.StateWhenTrue;
6216
var
alternativeState = this.StateWhenFalse;
6341
BoundExpression node, BoundExpression originalConsequence, BoundExpression originalAlternative,
LocalState
consequenceState,
LocalState
alternativeState,
6388
LocalState
consequenceState,
6389
LocalState
alternativeState,
6409
(BoundExpression, Conversion, TypeWithState) visitConditionalOperand(
LocalState
state, BoundExpression operand)
6422
(TypeWithAnnotations LValueType, TypeWithState RValueType) visitConditionalRefOperand(
LocalState
state, BoundExpression operand)
6445
LocalState
state,
7684
void applyMemberPostConditions(int receiverSlot, TypeSymbol type, ImmutableArray<string> members, ref
LocalState
state)
7697
void markMembersAsNotNull(int receiverSlot, TypeSymbol type, string memberName, ref
LocalState
state)
8121
var
originalWhenFalse = StateWhenFalse.Clone();
8127
var
newWhenTrue = State.Clone();
8289
private static VariableState GetVariableState(Variables variables,
LocalState
localState)
9006
var
savedState = this.State.Clone();
9389
Optional<
LocalState
> stateForLambda = default,
10471
var
stateForLambda = this.State.Clone();
10483
private void VisitLambda(BoundLambda node, NamedTypeSymbol? delegateTypeOpt, Optional<
LocalState
> initialState = default)
12253
var
leftTrue = this.StateWhenTrue;
12254
var
leftFalse = this.StateWhenFalse;
12270
var
leftTrue = this.StateWhenTrue;
12271
var
leftFalse = this.StateWhenFalse;
12283
var
rightState = State.Clone();
12300
var
leftState = isAnd ? leftFalse : leftTrue;
12337
protected override void AfterLeftChildOfBinaryLogicalOperatorHasBeenVisited(BoundExpression node, BoundExpression right, bool isAnd, bool isBool, ref
LocalState
leftTrue, ref
LocalState
leftFalse)
12432
LocalState
stateWhenNotNull;
12924
protected override void VisitCatchBlock(BoundCatchBlock node, ref
LocalState
finallyState)
13040
protected override string Dump(
LocalState
state)
13045
protected override bool Meet(ref
LocalState
self, ref
LocalState
other)
13062
protected override bool Join(ref
LocalState
self, ref
LocalState
other)
13099
private
LocalState
CloneAndUnsplit(ref PossiblyConditionalState conditionalState)
13106
var
state = conditionalState.StateWhenTrue.Clone();
13148
internal
LocalState
Value;
13150
internal Boxed(
LocalState
value)
13171
internal static
LocalState
Create(LocalStateSnapshot snapshot)
13186
public static
LocalState
ReachableState(Variables variables)
13191
public static
LocalState
UnreachableState(Variables variables)
13196
public static
LocalState
ReachableStateWithNotNulls(Variables variables)
13220
private static
LocalState
CreateReachableOrUnreachableState(Variables variables, bool reachable)
13229
public
LocalState
CreateNestedMethodState(Variables variables)
13258
bool hasVariableCore(ref
LocalState
state, int id, int index)
13276
static bool hasValue(ref
LocalState
state, int slot)
13286
static bool hasValueCore(ref
LocalState
state, int id, int index)
13415
internal
LocalState
GetStateForVariables(int id)
13417
var
state = this;
13429
public
LocalState
Clone()
13435
public bool Join(in
LocalState
other)
13464
public bool Meet(in
LocalState
other)
13555
public
LocalState
StartingState;
13557
public LocalFunctionState(
LocalState
unreachableState)
13569
return new LocalFunctionState(
LocalState
.UnreachableState(variables));
FlowAnalysis\NullableWalker.SnapshotManager.cs (1)
208
internal void TakeIncrementalSnapshot(BoundNode? node,
LocalState
currentState)
FlowAnalysis\NullableWalker_Patterns.cs (21)
37
var
currentState = State;
273
protected override
LocalState
VisitSwitchStatementDispatch(BoundSwitchStatement node)
311
var
afterSwitchState = labelStateMap.TryGetValue(node.BreakLabel, out var stateAndReachable) ? stateAndReachable.state : UnreachableState();
339
public
LocalState
State;
340
public
LocalState
StateWhenTrue;
341
public
LocalState
StateWhenFalse;
344
public PossiblyConditionalState(
LocalState
stateWhenTrue,
LocalState
stateWhenFalse)
352
public PossiblyConditionalState(
LocalState
state)
374
private PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)> LearnFromDecisionDag(
416
var labelStateMap = PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)>.GetInstance();
731
void learnFromNonNullTest(int inputSlot, ref
LocalState
state)
806
void gotoNode(BoundDecisionDagNode node,
LocalState
state, bool believedReachable)
895
var
endState = UnreachableState();
989
PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)> labelStateMap,
1003
var
armState = getStateForArm(arm, labelStateMap);
1034
PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)> labelStateMap,
1046
LocalState
getStateForArm(BoundSwitchExpressionArm arm, PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)> labelStateMap)
1063
var
trueState = labelStateMap.TryGetValue(node.IsNegated ? node.WhenFalseLabel : node.WhenTrueLabel, out var s1) ? s1.state : UnreachableState();
1064
var
falseState = labelStateMap.TryGetValue(node.IsNegated ? node.WhenTrueLabel : node.WhenFalseLabel, out var s2) ? s2.state : UnreachableState();