5 instantiations of LocalState
Microsoft.CodeAnalysis.CSharp (5)
FlowAnalysis\NullableWalker.cs (5)
14089
return new
LocalState
(snapshot.Id, container, snapshot.State.Clone());
14118
return new
LocalState
(variables.Id, container, createBitVectorWithNotNulls(capacity, reachable: true));
14141
return new
LocalState
(variables.Id, container, CreateBitVector(reachable));
14147
return new
LocalState
(variables.Id, container: new Boxed(this), CreateBitVector(reachable: true));
14347
return new
LocalState
(Id, container, _state.Clone());
142 references to LocalState
Microsoft.CodeAnalysis.CSharp (142)
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();
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>)"/>.
681
void enforceMemberNotNull(SyntaxNode? syntaxOpt,
LocalState
state)
760
void checkMemberStateOnConstructorExit(MethodSymbol constructor, Symbol member,
LocalState
state, int thisSlot, Location? exitLocation, ImmutableArray<string> membersWithStateEnforcedByRequiredMembers, bool forcePropertyAnalysis)
1133
private void EnforceMemberNotNullOnMember(SyntaxNode? syntaxOpt,
LocalState
state, MethodSymbol method, string memberName)
1183
void enforceMemberNotNullWhenIfAffected(SyntaxNode? syntaxOpt, bool sense, ImmutableArray<Symbol> members,
LocalState
state,
LocalState
otherState)
1195
void enforceMemberNotNullWhen(SyntaxNode? syntaxOpt, bool sense,
LocalState
state)
1211
private void ReportFailedMemberNotNullIfNeeded(SyntaxNode? syntaxOpt, bool sense, Symbol member,
LocalState
state)
1220
private bool FailsMemberNotNullExpectation(Symbol member,
LocalState
state)
1351
private void EnforceParameterNotNullOnExit(SyntaxNode? syntaxOpt,
LocalState
state)
1397
private void EnforceParameterNotNullWhenOnExit(SyntaxNode syntax, ImmutableArray<ParameterSymbol> parameters, bool sense,
LocalState
stateWhen)
1410
private void ReportParameterIfBadConditionalState(SyntaxNode syntax, ParameterSymbol parameter, bool sense,
LocalState
stateWhen)
1419
bool parameterHasBadConditionalState(ParameterSymbol parameter, bool sense,
LocalState
stateWhen)
1457
private void EnforceNotNullIfNotNull(SyntaxNode? syntaxOpt,
LocalState
state, ImmutableArray<ParameterSymbol> parameters, ImmutableHashSet<string> inputParamNames, NullableFlowState outputState, ParameterSymbol? outputParam)
1760
Analyze(walker, symbol, diagnostics: null,
LocalState
.Create(localState), snapshotBuilderOpt: newSnapshotBuilder);
1881
var
localState =
LocalState
.Create(initialState.VariableNullableStates).CreateNestedMethodState(variables);
1934
Analyze(walker, symbol, diagnostics, initialState is null ? (Optional<
LocalState
>)default :
LocalState
.Create(initialState.VariableNullableStates), snapshotBuilderOpt, requiresAnalysis);
1951
Optional<
LocalState
> initialState,
2045
private NullableFlowState GetState(ref
LocalState
state, int slot)
2054
private void SetState(ref
LocalState
state, int slot, NullableFlowState value, bool useNotNullsAsDefault = false)
2063
private void NormalizeIfNeeded(ref
LocalState
state, int slot, bool useNotNullsAsDefault)
2068
protected override void Normalize(ref
LocalState
state)
2076
private NullableFlowState GetDefaultState(ref
LocalState
state, int slot)
2910
private void SetStateAndTrackForFinally(ref
LocalState
state, int slot, NullableFlowState newState)
2916
var
tryState = NonMonotonicState.Value;
2925
protected override void JoinTryBlockState(ref
LocalState
self, ref
LocalState
other)
2927
var
tryState = other.GetStateForVariables(self.Id);
3021
protected override
LocalState
TopState()
3023
var
state =
LocalState
.ReachableState(_variables);
3028
protected override
LocalState
UnreachableState()
3030
return
LocalState
.UnreachableState(_variables);
3033
protected override
LocalState
ReachableBottomState()
3036
return
LocalState
.ReachableStateWithNotNulls(_variables);
3069
var
parameterDefaultsNotAssignedState = State.Clone();
3194
var
joinedState = this.StateWhenTrue.Clone();
3425
var
state = TopState();
3451
var
startingState = localFunctionState.StartingState;
3494
LocalState
state,
3520
var
oldState = this.State;
3597
void enforceMemberNotNull(SyntaxNode? syntax,
LocalState
state)
3624
var
state = State.GetStateForVariables(localFunctionState.StartingState.Id);
3765
var
currentState = State;
5007
private void SetNotNullResultForLambda(BoundExpression node,
LocalState
stateForLambda)
5507
var
stateAfterLeft = this.State;
5510
var
stateWhenNotNull = this.State;
5566
LocalState
getUnconditionalStateWhenNotNull(BoundExpression otherOperand, PossiblyConditionalState conditionalStateWhenNotNull)
5568
LocalState
stateWhenNotNull;
5604
var
stateWhenNotNull = getUnconditionalStateWhenNotNull(leftOperand, conditionalStateWhenNotNull);
5953
ref
LocalState
stateToUpdate = ref whenTrue ? ref this.StateWhenTrue : ref this.StateWhenFalse;
5959
protected override bool VisitInterpolatedStringHandlerParts(BoundInterpolatedStringBase node, bool usesBoolReturns, bool firstPartIsConditional, ref
LocalState
shortCircuitState)
6064
private void MarkSlotsAsNotNull(ArrayBuilder<int> slots, ref
LocalState
stateToUpdate)
6072
private void LearnFromNonNullTest(BoundExpression expression, ref
LocalState
state)
6095
private void LearnFromNonNullTest(int slot, ref
LocalState
state)
6100
private void LearnFromNullTest(BoundExpression expression, ref
LocalState
state)
6118
private void LearnFromNullTest(int slot, TypeSymbol? expressionType, ref
LocalState
state, bool markDependentSlotsNotNull)
6138
private void MarkDependentSlotsNotNull(int slot, TypeSymbol expressionType, ref
LocalState
state, int depth = 2)
6219
var
leftState = this.State.Clone();
6440
var
savedState = this.State.Clone();
6549
var
consequenceState = this.StateWhenTrue;
6550
var
alternativeState = this.StateWhenFalse;
6675
BoundExpression node, BoundExpression originalConsequence, BoundExpression originalAlternative,
LocalState
consequenceState,
LocalState
alternativeState,
6722
LocalState
consequenceState,
6723
LocalState
alternativeState,
6743
(BoundExpression, Conversion, TypeWithState) visitConditionalOperand(
LocalState
state, BoundExpression operand)
6756
(TypeWithAnnotations LValueType, TypeWithState RValueType) visitConditionalRefOperand(
LocalState
state, BoundExpression operand)
6779
LocalState
state,
8114
void applyMemberPostConditions(int receiverSlot, TypeSymbol type, ImmutableArray<string> members, ref
LocalState
state)
8127
void markMembersAsNotNull(int receiverSlot, TypeSymbol type, string memberName, ref
LocalState
state)
8155
LocalState
markMemberAsNotNull(int receiverSlot, ref
LocalState
state, Symbol member)
8559
var
originalWhenFalse = StateWhenFalse.Clone();
8565
var
newWhenTrue = State.Clone();
8746
private static VariableState GetVariableState(Variables variables,
LocalState
localState)
9474
var
savedState = this.State.Clone();
9915
Optional<
LocalState
> stateForLambda = default,
11232
var
stateForLambda = this.State.Clone();
11244
private void VisitLambda(BoundLambda node, NamedTypeSymbol? delegateTypeOpt, Optional<
LocalState
> initialState = default)
13108
var
leftTrue = this.StateWhenTrue;
13109
var
leftFalse = this.StateWhenFalse;
13125
var
leftTrue = this.StateWhenTrue;
13126
var
leftFalse = this.StateWhenFalse;
13138
var
rightState = State.Clone();
13155
var
leftState = isAnd ? leftFalse : leftTrue;
13192
protected override void AfterLeftChildOfBinaryLogicalOperatorHasBeenVisited(BoundExpression node, BoundExpression right, bool isAnd, bool isBool, ref
LocalState
leftTrue, ref
LocalState
leftFalse)
13285
LocalState
stateWhenNotNull;
13955
protected override string Dump(
LocalState
state)
13960
protected override bool Meet(ref
LocalState
self, ref
LocalState
other)
13977
protected override bool Join(ref
LocalState
self, ref
LocalState
other)
14014
private
LocalState
CloneAndUnsplit(ref PossiblyConditionalState conditionalState)
14021
var
state = conditionalState.StateWhenTrue.Clone();
14063
internal
LocalState
Value;
14065
internal Boxed(
LocalState
value)
14086
internal static
LocalState
Create(LocalStateSnapshot snapshot)
14101
public static
LocalState
ReachableState(Variables variables)
14106
public static
LocalState
UnreachableState(Variables variables)
14111
public static
LocalState
ReachableStateWithNotNulls(Variables variables)
14135
private static
LocalState
CreateReachableOrUnreachableState(Variables variables, bool reachable)
14144
public
LocalState
CreateNestedMethodState(Variables variables)
14173
bool hasVariableCore(ref
LocalState
state, int id, int index)
14191
static bool hasValue(ref
LocalState
state, int slot)
14201
static bool hasValueCore(ref
LocalState
state, int id, int index)
14330
internal
LocalState
GetStateForVariables(int id)
14332
var
state = this;
14344
public
LocalState
Clone()
14350
public bool Join(in
LocalState
other)
14379
public bool Meet(in
LocalState
other)
14470
public
LocalState
StartingState;
14472
public LocalFunctionState(
LocalState
unreachableState)
14484
return new LocalFunctionState(
LocalState
.UnreachableState(variables));
FlowAnalysis\NullableWalker.SnapshotManager.cs (1)
208
internal void TakeIncrementalSnapshot(BoundNode? node,
LocalState
currentState)