5 instantiations of LocalState
Microsoft.CodeAnalysis.CSharp (5)
FlowAnalysis\NullableWalker.cs (5)
13397
return new
LocalState
(snapshot.Id, container, snapshot.State.Clone());
13426
return new
LocalState
(variables.Id, container, createBitVectorWithNotNulls(capacity, reachable: true));
13449
return new
LocalState
(variables.Id, container, CreateBitVector(reachable));
13455
return new
LocalState
(variables.Id, container: new Boxed(this), CreateBitVector(reachable: true));
13655
return new
LocalState
(Id, container, _state.Clone());
140 references to LocalState
Microsoft.CodeAnalysis.CSharp (140)
FlowAnalysis\NullableWalker.cs (118)
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)
740
void checkMemberStateOnConstructorExit(MethodSymbol constructor, Symbol member,
LocalState
state, int thisSlot, Location? exitLocation, ImmutableArray<string> membersWithStateEnforcedByRequiredMembers, bool forcePropertyAnalysis)
1078
private void EnforceMemberNotNullOnMember(SyntaxNode? syntaxOpt,
LocalState
state, MethodSymbol method, string memberName)
1128
void enforceMemberNotNullWhenIfAffected(SyntaxNode? syntaxOpt, bool sense, ImmutableArray<Symbol> members,
LocalState
state,
LocalState
otherState)
1140
void enforceMemberNotNullWhen(SyntaxNode? syntaxOpt, bool sense,
LocalState
state)
1156
private void ReportFailedMemberNotNullIfNeeded(SyntaxNode? syntaxOpt, bool sense, Symbol member,
LocalState
state)
1165
private bool FailsMemberNotNullExpectation(Symbol member,
LocalState
state)
1296
private void EnforceParameterNotNullOnExit(SyntaxNode? syntaxOpt,
LocalState
state)
1342
private void EnforceParameterNotNullWhenOnExit(SyntaxNode syntax, ImmutableArray<ParameterSymbol> parameters, bool sense,
LocalState
stateWhen)
1355
private void ReportParameterIfBadConditionalState(SyntaxNode syntax, ParameterSymbol parameter, bool sense,
LocalState
stateWhen)
1364
bool parameterHasBadConditionalState(ParameterSymbol parameter, bool sense,
LocalState
stateWhen)
1402
private void EnforceNotNullIfNotNull(SyntaxNode? syntaxOpt,
LocalState
state, ImmutableArray<ParameterSymbol> parameters, ImmutableHashSet<string> inputParamNames, NullableFlowState outputState, ParameterSymbol? outputParam)
1705
Analyze(walker, symbol, diagnostics: null,
LocalState
.Create(localState), snapshotBuilderOpt: newSnapshotBuilder);
1826
var
localState =
LocalState
.Create(initialState.VariableNullableStates).CreateNestedMethodState(variables);
1879
Analyze(walker, symbol, diagnostics, initialState is null ? (Optional<
LocalState
>)default :
LocalState
.Create(initialState.VariableNullableStates), snapshotBuilderOpt, requiresAnalysis);
1896
Optional<
LocalState
> initialState,
1990
private NullableFlowState GetState(ref
LocalState
state, int slot)
1999
private void SetState(ref
LocalState
state, int slot, NullableFlowState value, bool useNotNullsAsDefault = false)
2008
private void NormalizeIfNeeded(ref
LocalState
state, int slot, bool useNotNullsAsDefault)
2013
protected override void Normalize(ref
LocalState
state)
2021
private NullableFlowState GetDefaultState(ref
LocalState
state, int slot)
2829
private void SetStateAndTrackForFinally(ref
LocalState
state, int slot, NullableFlowState newState)
2835
var
tryState = NonMonotonicState.Value;
2844
protected override void JoinTryBlockState(ref
LocalState
self, ref
LocalState
other)
2846
var
tryState = other.GetStateForVariables(self.Id);
2940
protected override
LocalState
TopState()
2942
var
state =
LocalState
.ReachableState(_variables);
2947
protected override
LocalState
UnreachableState()
2949
return
LocalState
.UnreachableState(_variables);
2952
protected override
LocalState
ReachableBottomState()
2955
return
LocalState
.ReachableStateWithNotNulls(_variables);
2988
var
parameterDefaultsNotAssignedState = State.Clone();
3113
var
joinedState = this.StateWhenTrue.Clone();
3344
var
state = TopState();
3370
var
startingState = localFunctionState.StartingState;
3413
LocalState
state,
3439
var
oldState = this.State;
3516
void enforceMemberNotNull(SyntaxNode? syntax,
LocalState
state)
3543
var
state = State.GetStateForVariables(localFunctionState.StartingState.Id);
3657
var
currentState = State;
4845
private void SetNotNullResultForLambda(BoundExpression node,
LocalState
stateForLambda)
5345
var
stateAfterLeft = this.State;
5348
var
stateWhenNotNull = this.State;
5404
LocalState
getUnconditionalStateWhenNotNull(BoundExpression otherOperand, PossiblyConditionalState conditionalStateWhenNotNull)
5406
LocalState
stateWhenNotNull;
5442
var
stateWhenNotNull = getUnconditionalStateWhenNotNull(leftOperand, conditionalStateWhenNotNull);
5775
ref
LocalState
stateToUpdate = ref whenTrue ? ref this.StateWhenTrue : ref this.StateWhenFalse;
5781
protected override bool VisitInterpolatedStringHandlerParts(BoundInterpolatedStringBase node, bool usesBoolReturns, bool firstPartIsConditional, ref
LocalState
shortCircuitState)
5886
private void MarkSlotsAsNotNull(ArrayBuilder<int> slots, ref
LocalState
stateToUpdate)
5894
private void LearnFromNonNullTest(BoundExpression expression, ref
LocalState
state)
5917
private void LearnFromNonNullTest(int slot, ref
LocalState
state)
5922
private void LearnFromNullTest(BoundExpression expression, ref
LocalState
state)
5940
private void LearnFromNullTest(int slot, TypeSymbol? expressionType, ref
LocalState
state, bool markDependentSlotsNotNull)
5960
private void MarkDependentSlotsNotNull(int slot, TypeSymbol expressionType, ref
LocalState
state, int depth = 2)
6041
var
leftState = this.State.Clone();
6260
var
savedState = this.State.Clone();
6369
var
consequenceState = this.StateWhenTrue;
6370
var
alternativeState = this.StateWhenFalse;
6495
BoundExpression node, BoundExpression originalConsequence, BoundExpression originalAlternative,
LocalState
consequenceState,
LocalState
alternativeState,
6542
LocalState
consequenceState,
6543
LocalState
alternativeState,
6563
(BoundExpression, Conversion, TypeWithState) visitConditionalOperand(
LocalState
state, BoundExpression operand)
6576
(TypeWithAnnotations LValueType, TypeWithState RValueType) visitConditionalRefOperand(
LocalState
state, BoundExpression operand)
6599
LocalState
state,
7878
void applyMemberPostConditions(int receiverSlot, TypeSymbol type, ImmutableArray<string> members, ref
LocalState
state)
7891
void markMembersAsNotNull(int receiverSlot, TypeSymbol type, string memberName, ref
LocalState
state)
8315
var
originalWhenFalse = StateWhenFalse.Clone();
8321
var
newWhenTrue = State.Clone();
8483
private static VariableState GetVariableState(Variables variables,
LocalState
localState)
9211
var
savedState = this.State.Clone();
9594
Optional<
LocalState
> stateForLambda = default,
10675
var
stateForLambda = this.State.Clone();
10687
private void VisitLambda(BoundLambda node, NamedTypeSymbol? delegateTypeOpt, Optional<
LocalState
> initialState = default)
12474
var
leftTrue = this.StateWhenTrue;
12475
var
leftFalse = this.StateWhenFalse;
12491
var
leftTrue = this.StateWhenTrue;
12492
var
leftFalse = this.StateWhenFalse;
12504
var
rightState = State.Clone();
12521
var
leftState = isAnd ? leftFalse : leftTrue;
12558
protected override void AfterLeftChildOfBinaryLogicalOperatorHasBeenVisited(BoundExpression node, BoundExpression right, bool isAnd, bool isBool, ref
LocalState
leftTrue, ref
LocalState
leftFalse)
12653
LocalState
stateWhenNotNull;
13263
protected override string Dump(
LocalState
state)
13268
protected override bool Meet(ref
LocalState
self, ref
LocalState
other)
13285
protected override bool Join(ref
LocalState
self, ref
LocalState
other)
13322
private
LocalState
CloneAndUnsplit(ref PossiblyConditionalState conditionalState)
13329
var
state = conditionalState.StateWhenTrue.Clone();
13371
internal
LocalState
Value;
13373
internal Boxed(
LocalState
value)
13394
internal static
LocalState
Create(LocalStateSnapshot snapshot)
13409
public static
LocalState
ReachableState(Variables variables)
13414
public static
LocalState
UnreachableState(Variables variables)
13419
public static
LocalState
ReachableStateWithNotNulls(Variables variables)
13443
private static
LocalState
CreateReachableOrUnreachableState(Variables variables, bool reachable)
13452
public
LocalState
CreateNestedMethodState(Variables variables)
13481
bool hasVariableCore(ref
LocalState
state, int id, int index)
13499
static bool hasValue(ref
LocalState
state, int slot)
13509
static bool hasValueCore(ref
LocalState
state, int id, int index)
13638
internal
LocalState
GetStateForVariables(int id)
13640
var
state = this;
13652
public
LocalState
Clone()
13658
public bool Join(in
LocalState
other)
13687
public bool Meet(in
LocalState
other)
13778
public
LocalState
StartingState;
13780
public LocalFunctionState(
LocalState
unreachableState)
13792
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();