5 instantiations of LocalState
Microsoft.CodeAnalysis.CSharp (5)
FlowAnalysis\NullableWalker.cs (5)
13862
return new
LocalState
(snapshot.Id, container, snapshot.State.Clone());
13891
return new
LocalState
(variables.Id, container, createBitVectorWithNotNulls(capacity, reachable: true));
13914
return new
LocalState
(variables.Id, container, CreateBitVector(reachable));
13920
return new
LocalState
(variables.Id, container: new Boxed(this), CreateBitVector(reachable: true));
14120
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>)"/>.
662
void enforceMemberNotNull(SyntaxNode? syntaxOpt,
LocalState
state)
741
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();
3345
var
state = TopState();
3371
var
startingState = localFunctionState.StartingState;
3414
LocalState
state,
3440
var
oldState = this.State;
3517
void enforceMemberNotNull(SyntaxNode? syntax,
LocalState
state)
3544
var
state = State.GetStateForVariables(localFunctionState.StartingState.Id);
3685
var
currentState = State;
4917
private void SetNotNullResultForLambda(BoundExpression node,
LocalState
stateForLambda)
5417
var
stateAfterLeft = this.State;
5420
var
stateWhenNotNull = this.State;
5476
LocalState
getUnconditionalStateWhenNotNull(BoundExpression otherOperand, PossiblyConditionalState conditionalStateWhenNotNull)
5478
LocalState
stateWhenNotNull;
5514
var
stateWhenNotNull = getUnconditionalStateWhenNotNull(leftOperand, conditionalStateWhenNotNull);
5847
ref
LocalState
stateToUpdate = ref whenTrue ? ref this.StateWhenTrue : ref this.StateWhenFalse;
5853
protected override bool VisitInterpolatedStringHandlerParts(BoundInterpolatedStringBase node, bool usesBoolReturns, bool firstPartIsConditional, ref
LocalState
shortCircuitState)
5958
private void MarkSlotsAsNotNull(ArrayBuilder<int> slots, ref
LocalState
stateToUpdate)
5966
private void LearnFromNonNullTest(BoundExpression expression, ref
LocalState
state)
5989
private void LearnFromNonNullTest(int slot, ref
LocalState
state)
5994
private void LearnFromNullTest(BoundExpression expression, ref
LocalState
state)
6012
private void LearnFromNullTest(int slot, TypeSymbol? expressionType, ref
LocalState
state, bool markDependentSlotsNotNull)
6032
private void MarkDependentSlotsNotNull(int slot, TypeSymbol expressionType, ref
LocalState
state, int depth = 2)
6113
var
leftState = this.State.Clone();
6334
var
savedState = this.State.Clone();
6443
var
consequenceState = this.StateWhenTrue;
6444
var
alternativeState = this.StateWhenFalse;
6569
BoundExpression node, BoundExpression originalConsequence, BoundExpression originalAlternative,
LocalState
consequenceState,
LocalState
alternativeState,
6616
LocalState
consequenceState,
6617
LocalState
alternativeState,
6637
(BoundExpression, Conversion, TypeWithState) visitConditionalOperand(
LocalState
state, BoundExpression operand)
6650
(TypeWithAnnotations LValueType, TypeWithState RValueType) visitConditionalRefOperand(
LocalState
state, BoundExpression operand)
6673
LocalState
state,
7970
void applyMemberPostConditions(int receiverSlot, TypeSymbol type, ImmutableArray<string> members, ref
LocalState
state)
7983
void markMembersAsNotNull(int receiverSlot, TypeSymbol type, string memberName, ref
LocalState
state)
8011
LocalState
markMemberAsNotNull(int receiverSlot, ref
LocalState
state, Symbol member)
8414
var
originalWhenFalse = StateWhenFalse.Clone();
8420
var
newWhenTrue = State.Clone();
8607
private static VariableState GetVariableState(Variables variables,
LocalState
localState)
9335
var
savedState = this.State.Clone();
9777
Optional<
LocalState
> stateForLambda = default,
11074
var
stateForLambda = this.State.Clone();
11086
private void VisitLambda(BoundLambda node, NamedTypeSymbol? delegateTypeOpt, Optional<
LocalState
> initialState = default)
12890
var
leftTrue = this.StateWhenTrue;
12891
var
leftFalse = this.StateWhenFalse;
12907
var
leftTrue = this.StateWhenTrue;
12908
var
leftFalse = this.StateWhenFalse;
12920
var
rightState = State.Clone();
12937
var
leftState = isAnd ? leftFalse : leftTrue;
12974
protected override void AfterLeftChildOfBinaryLogicalOperatorHasBeenVisited(BoundExpression node, BoundExpression right, bool isAnd, bool isBool, ref
LocalState
leftTrue, ref
LocalState
leftFalse)
13067
LocalState
stateWhenNotNull;
13728
protected override string Dump(
LocalState
state)
13733
protected override bool Meet(ref
LocalState
self, ref
LocalState
other)
13750
protected override bool Join(ref
LocalState
self, ref
LocalState
other)
13787
private
LocalState
CloneAndUnsplit(ref PossiblyConditionalState conditionalState)
13794
var
state = conditionalState.StateWhenTrue.Clone();
13836
internal
LocalState
Value;
13838
internal Boxed(
LocalState
value)
13859
internal static
LocalState
Create(LocalStateSnapshot snapshot)
13874
public static
LocalState
ReachableState(Variables variables)
13879
public static
LocalState
UnreachableState(Variables variables)
13884
public static
LocalState
ReachableStateWithNotNulls(Variables variables)
13908
private static
LocalState
CreateReachableOrUnreachableState(Variables variables, bool reachable)
13917
public
LocalState
CreateNestedMethodState(Variables variables)
13946
bool hasVariableCore(ref
LocalState
state, int id, int index)
13964
static bool hasValue(ref
LocalState
state, int slot)
13974
static bool hasValueCore(ref
LocalState
state, int id, int index)
14103
internal
LocalState
GetStateForVariables(int id)
14105
var
state = this;
14117
public
LocalState
Clone()
14123
public bool Join(in
LocalState
other)
14152
public bool Meet(in
LocalState
other)
14243
public
LocalState
StartingState;
14245
public LocalFunctionState(
LocalState
unreachableState)
14257
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(
417
var labelStateMap = PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)>.GetInstance();
838
void learnFromNonNullTest(int inputSlot, ref
LocalState
state)
913
void gotoNode(BoundDecisionDagNode node,
LocalState
state, bool believedReachable)
993
var
endState = UnreachableState();
1087
PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)> labelStateMap,
1101
var
armState = getStateForArm(arm, labelStateMap);
1132
PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)> labelStateMap,
1144
LocalState
getStateForArm(BoundSwitchExpressionArm arm, PooledDictionary<LabelSymbol, (
LocalState
state, bool believedReachable)> labelStateMap)
1161
var
trueState = labelStateMap.TryGetValue(node.IsNegated ? node.WhenFalseLabel : node.WhenTrueLabel, out var s1) ? s1.state : UnreachableState();
1162
var
falseState = labelStateMap.TryGetValue(node.IsNegated ? node.WhenTrueLabel : node.WhenFalseLabel, out var s2) ? s2.state : UnreachableState();