5 instantiations of LocalState
Microsoft.CodeAnalysis.CSharp (5)
FlowAnalysis\NullableWalker.cs (5)
13986
return new
LocalState
(snapshot.Id, container, snapshot.State.Clone());
14015
return new
LocalState
(variables.Id, container, createBitVectorWithNotNulls(capacity, reachable: true));
14038
return new
LocalState
(variables.Id, container, CreateBitVector(reachable));
14044
return new
LocalState
(variables.Id, container: new Boxed(this), CreateBitVector(reachable: true));
14244
return new
LocalState
(Id, container, _state.Clone());
142 references to LocalState
Microsoft.CodeAnalysis.CSharp (142)
FlowAnalysis\NullableWalker.cs (120)
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, int, Location, ArrayBuilder<VisitResult>)"/>.
679
void enforceMemberNotNull(SyntaxNode? syntaxOpt,
LocalState
state)
758
void checkMemberStateOnConstructorExit(MethodSymbol constructor, Symbol member,
LocalState
state, int thisSlot, Location? exitLocation, ImmutableArray<string> membersWithStateEnforcedByRequiredMembers, bool forcePropertyAnalysis)
1096
private void EnforceMemberNotNullOnMember(SyntaxNode? syntaxOpt,
LocalState
state, MethodSymbol method, string memberName)
1146
void enforceMemberNotNullWhenIfAffected(SyntaxNode? syntaxOpt, bool sense, ImmutableArray<Symbol> members,
LocalState
state,
LocalState
otherState)
1158
void enforceMemberNotNullWhen(SyntaxNode? syntaxOpt, bool sense,
LocalState
state)
1174
private void ReportFailedMemberNotNullIfNeeded(SyntaxNode? syntaxOpt, bool sense, Symbol member,
LocalState
state)
1183
private bool FailsMemberNotNullExpectation(Symbol member,
LocalState
state)
1314
private void EnforceParameterNotNullOnExit(SyntaxNode? syntaxOpt,
LocalState
state)
1360
private void EnforceParameterNotNullWhenOnExit(SyntaxNode syntax, ImmutableArray<ParameterSymbol> parameters, bool sense,
LocalState
stateWhen)
1373
private void ReportParameterIfBadConditionalState(SyntaxNode syntax, ParameterSymbol parameter, bool sense,
LocalState
stateWhen)
1382
bool parameterHasBadConditionalState(ParameterSymbol parameter, bool sense,
LocalState
stateWhen)
1420
private void EnforceNotNullIfNotNull(SyntaxNode? syntaxOpt,
LocalState
state, ImmutableArray<ParameterSymbol> parameters, ImmutableHashSet<string> inputParamNames, NullableFlowState outputState, ParameterSymbol? outputParam)
1723
Analyze(walker, symbol, diagnostics: null,
LocalState
.Create(localState), snapshotBuilderOpt: newSnapshotBuilder);
1844
var
localState =
LocalState
.Create(initialState.VariableNullableStates).CreateNestedMethodState(variables);
1897
Analyze(walker, symbol, diagnostics, initialState is null ? (Optional<
LocalState
>)default :
LocalState
.Create(initialState.VariableNullableStates), snapshotBuilderOpt, requiresAnalysis);
1914
Optional<
LocalState
> initialState,
2008
private NullableFlowState GetState(ref
LocalState
state, int slot)
2017
private void SetState(ref
LocalState
state, int slot, NullableFlowState value, bool useNotNullsAsDefault = false)
2026
private void NormalizeIfNeeded(ref
LocalState
state, int slot, bool useNotNullsAsDefault)
2031
protected override void Normalize(ref
LocalState
state)
2039
private NullableFlowState GetDefaultState(ref
LocalState
state, int slot)
2875
private void SetStateAndTrackForFinally(ref
LocalState
state, int slot, NullableFlowState newState)
2881
var
tryState = NonMonotonicState.Value;
2890
protected override void JoinTryBlockState(ref
LocalState
self, ref
LocalState
other)
2892
var
tryState = other.GetStateForVariables(self.Id);
2986
protected override
LocalState
TopState()
2988
var
state =
LocalState
.ReachableState(_variables);
2993
protected override
LocalState
UnreachableState()
2995
return
LocalState
.UnreachableState(_variables);
2998
protected override
LocalState
ReachableBottomState()
3001
return
LocalState
.ReachableStateWithNotNulls(_variables);
3034
var
parameterDefaultsNotAssignedState = State.Clone();
3159
var
joinedState = this.StateWhenTrue.Clone();
3390
var
state = TopState();
3416
var
startingState = localFunctionState.StartingState;
3459
LocalState
state,
3485
var
oldState = this.State;
3562
void enforceMemberNotNull(SyntaxNode? syntax,
LocalState
state)
3589
var
state = State.GetStateForVariables(localFunctionState.StartingState.Id);
3730
var
currentState = State;
4955
private void SetNotNullResultForLambda(BoundExpression node,
LocalState
stateForLambda)
5455
var
stateAfterLeft = this.State;
5458
var
stateWhenNotNull = this.State;
5514
LocalState
getUnconditionalStateWhenNotNull(BoundExpression otherOperand, PossiblyConditionalState conditionalStateWhenNotNull)
5516
LocalState
stateWhenNotNull;
5552
var
stateWhenNotNull = getUnconditionalStateWhenNotNull(leftOperand, conditionalStateWhenNotNull);
5885
ref
LocalState
stateToUpdate = ref whenTrue ? ref this.StateWhenTrue : ref this.StateWhenFalse;
5891
protected override bool VisitInterpolatedStringHandlerParts(BoundInterpolatedStringBase node, bool usesBoolReturns, bool firstPartIsConditional, ref
LocalState
shortCircuitState)
5996
private void MarkSlotsAsNotNull(ArrayBuilder<int> slots, ref
LocalState
stateToUpdate)
6004
private void LearnFromNonNullTest(BoundExpression expression, ref
LocalState
state)
6027
private void LearnFromNonNullTest(int slot, ref
LocalState
state)
6032
private void LearnFromNullTest(BoundExpression expression, ref
LocalState
state)
6050
private void LearnFromNullTest(int slot, TypeSymbol? expressionType, ref
LocalState
state, bool markDependentSlotsNotNull)
6070
private void MarkDependentSlotsNotNull(int slot, TypeSymbol expressionType, ref
LocalState
state, int depth = 2)
6151
var
leftState = this.State.Clone();
6372
var
savedState = this.State.Clone();
6481
var
consequenceState = this.StateWhenTrue;
6482
var
alternativeState = this.StateWhenFalse;
6607
BoundExpression node, BoundExpression originalConsequence, BoundExpression originalAlternative,
LocalState
consequenceState,
LocalState
alternativeState,
6654
LocalState
consequenceState,
6655
LocalState
alternativeState,
6675
(BoundExpression, Conversion, TypeWithState) visitConditionalOperand(
LocalState
state, BoundExpression operand)
6688
(TypeWithAnnotations LValueType, TypeWithState RValueType) visitConditionalRefOperand(
LocalState
state, BoundExpression operand)
6711
LocalState
state,
8039
void applyMemberPostConditions(int receiverSlot, TypeSymbol type, ImmutableArray<string> members, ref
LocalState
state)
8052
void markMembersAsNotNull(int receiverSlot, TypeSymbol type, string memberName, ref
LocalState
state)
8080
LocalState
markMemberAsNotNull(int receiverSlot, ref
LocalState
state, Symbol member)
8484
var
originalWhenFalse = StateWhenFalse.Clone();
8490
var
newWhenTrue = State.Clone();
8671
private static VariableState GetVariableState(Variables variables,
LocalState
localState)
9399
var
savedState = this.State.Clone();
9840
Optional<
LocalState
> stateForLambda = default,
11153
var
stateForLambda = this.State.Clone();
11165
private void VisitLambda(BoundLambda node, NamedTypeSymbol? delegateTypeOpt, Optional<
LocalState
> initialState = default)
13013
var
leftTrue = this.StateWhenTrue;
13014
var
leftFalse = this.StateWhenFalse;
13030
var
leftTrue = this.StateWhenTrue;
13031
var
leftFalse = this.StateWhenFalse;
13043
var
rightState = State.Clone();
13060
var
leftState = isAnd ? leftFalse : leftTrue;
13097
protected override void AfterLeftChildOfBinaryLogicalOperatorHasBeenVisited(BoundExpression node, BoundExpression right, bool isAnd, bool isBool, ref
LocalState
leftTrue, ref
LocalState
leftFalse)
13190
LocalState
stateWhenNotNull;
13852
protected override string Dump(
LocalState
state)
13857
protected override bool Meet(ref
LocalState
self, ref
LocalState
other)
13874
protected override bool Join(ref
LocalState
self, ref
LocalState
other)
13911
private
LocalState
CloneAndUnsplit(ref PossiblyConditionalState conditionalState)
13918
var
state = conditionalState.StateWhenTrue.Clone();
13960
internal
LocalState
Value;
13962
internal Boxed(
LocalState
value)
13983
internal static
LocalState
Create(LocalStateSnapshot snapshot)
13998
public static
LocalState
ReachableState(Variables variables)
14003
public static
LocalState
UnreachableState(Variables variables)
14008
public static
LocalState
ReachableStateWithNotNulls(Variables variables)
14032
private static
LocalState
CreateReachableOrUnreachableState(Variables variables, bool reachable)
14041
public
LocalState
CreateNestedMethodState(Variables variables)
14070
bool hasVariableCore(ref
LocalState
state, int id, int index)
14088
static bool hasValue(ref
LocalState
state, int slot)
14098
static bool hasValueCore(ref
LocalState
state, int id, int index)
14227
internal
LocalState
GetStateForVariables(int id)
14229
var
state = this;
14241
public
LocalState
Clone()
14247
public bool Join(in
LocalState
other)
14276
public bool Meet(in
LocalState
other)
14367
public
LocalState
StartingState;
14369
public LocalFunctionState(
LocalState
unreachableState)
14381
return new LocalFunctionState(
LocalState
.UnreachableState(variables));
FlowAnalysis\NullableWalker.SnapshotManager.cs (1)
208
internal void TakeIncrementalSnapshot(BoundNode? node,
LocalState
currentState)
FlowAnalysis\NullableWalker_Patterns.cs (21)
39
var
currentState = State;
276
protected override
LocalState
VisitSwitchStatementDispatch(BoundSwitchStatement node)
314
var
afterSwitchState = labelStateMap.TryGetValue(node.BreakLabel, out var stateAndReachable) ? stateAndReachable.state : UnreachableState();
342
public
LocalState
State;
343
public
LocalState
StateWhenTrue;
344
public
LocalState
StateWhenFalse;
347
public PossiblyConditionalState(
LocalState
stateWhenTrue,
LocalState
stateWhenFalse)
355
public PossiblyConditionalState(
LocalState
state)
377
private PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)> LearnFromDecisionDag(
421
var labelStateMap = PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)>.GetInstance();
842
void learnFromNonNullTest(int inputSlot, ref
LocalState
state)
922
void gotoNode(BoundDecisionDagNode node,
LocalState
state, bool believedReachable, BoundDecisionDagNode from, bool whenTrueBranch)
1083
var
endState = UnreachableState();
1181
PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)> labelStateMap,
1195
var
armState = getStateForArm(arm, labelStateMap);
1226
PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)> labelStateMap,
1238
LocalState
getStateForArm(BoundSwitchExpressionArm arm, PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)> labelStateMap)
1255
var
trueState = labelStateMap.TryGetValue(node.IsNegated ? node.WhenFalseLabel : node.WhenTrueLabel, out var s1) ? s1.state : UnreachableState();
1256
var
falseState = labelStateMap.TryGetValue(node.IsNegated ? node.WhenTrueLabel : node.WhenFalseLabel, out var s2) ? s2.state : UnreachableState();