5 instantiations of LocalState
Microsoft.CodeAnalysis.CSharp (5)
FlowAnalysis\NullableWalker.cs (5)
13049return new LocalState(snapshot.Id, container, snapshot.State.Clone()); 13078return new LocalState(variables.Id, container, createBitVectorWithNotNulls(capacity, reachable: true)); 13101return new LocalState(variables.Id, container, CreateBitVector(reachable)); 13107return new LocalState(variables.Id, container: new Boxed(this), CreateBitVector(reachable: true)); 13307return new LocalState(Id, container, _state.Clone());
141 references to LocalState
Microsoft.CodeAnalysis.CSharp (141)
FlowAnalysis\NullableWalker.cs (119)
27: LocalDataFlowPass<NullableWalker.LocalState, NullableWalker.LocalFunctionState> 104public readonly Optional<LocalState> StateForLambda; 120public VisitResult(TypeWithState rValueType, TypeWithAnnotations lValueType, Optional<LocalState> stateForLambda) 253/// The delegate is invoked by <see cref="VisitConversion(BoundConversion, BoundExpression, Conversion, TypeWithAnnotations, TypeWithState, bool, bool, bool, AssignmentKind, ParameterSymbol, bool, bool, bool, bool, Optional&lt;LocalState&gt;,bool, Location, ArrayBuilder&lt;VisitResult&gt;)"/>. 636void enforceMemberNotNull(SyntaxNode? syntaxOpt, LocalState state) 717void checkMemberStateOnConstructorExit(MethodSymbol constructor, Symbol member, LocalState state, int thisSlot, Location? exitLocation, ImmutableArray<string> membersWithStateEnforcedByRequiredMembers, bool forcePropertyAnalysis) 1054private void EnforceMemberNotNullOnMember(SyntaxNode? syntaxOpt, LocalState state, MethodSymbol method, string memberName) 1104void enforceMemberNotNullWhenIfAffected(SyntaxNode? syntaxOpt, bool sense, ImmutableArray<Symbol> members, LocalState state, LocalState otherState) 1116void enforceMemberNotNullWhen(SyntaxNode? syntaxOpt, bool sense, LocalState state) 1132private void ReportFailedMemberNotNullIfNeeded(SyntaxNode? syntaxOpt, bool sense, Symbol member, LocalState state) 1141private bool FailsMemberNotNullExpectation(Symbol member, LocalState state) 1272private void EnforceParameterNotNullOnExit(SyntaxNode? syntaxOpt, LocalState state) 1318private void EnforceParameterNotNullWhenOnExit(SyntaxNode syntax, ImmutableArray<ParameterSymbol> parameters, bool sense, LocalState stateWhen) 1331private void ReportParameterIfBadConditionalState(SyntaxNode syntax, ParameterSymbol parameter, bool sense, LocalState stateWhen) 1340bool parameterHasBadConditionalState(ParameterSymbol parameter, bool sense, LocalState stateWhen) 1378private void EnforceNotNullIfNotNull(SyntaxNode? syntaxOpt, LocalState state, ImmutableArray<ParameterSymbol> parameters, ImmutableHashSet<string> inputParamNames, NullableFlowState outputState, ParameterSymbol? outputParam) 1681Analyze(walker, symbol, diagnostics: null, LocalState.Create(localState), snapshotBuilderOpt: newSnapshotBuilder); 1801var localState = LocalState.Create(initialState.VariableNullableStates).CreateNestedMethodState(variables); 1854Analyze(walker, symbol, diagnostics, initialState is null ? (Optional<LocalState>)default : LocalState.Create(initialState.VariableNullableStates), snapshotBuilderOpt, requiresAnalysis); 1871Optional<LocalState> initialState, 1965private NullableFlowState GetState(ref LocalState state, int slot) 1974private void SetState(ref LocalState state, int slot, NullableFlowState value, bool useNotNullsAsDefault = false) 1983private void NormalizeIfNeeded(ref LocalState state, int slot, bool useNotNullsAsDefault) 1988protected override void Normalize(ref LocalState state) 1996private NullableFlowState GetDefaultState(ref LocalState state, int slot) 2804private void SetStateAndTrackForFinally(ref LocalState state, int slot, NullableFlowState newState) 2810var tryState = NonMonotonicState.Value; 2819protected override void JoinTryBlockState(ref LocalState self, ref LocalState other) 2821var tryState = other.GetStateForVariables(self.Id); 2915protected override LocalState TopState() 2917var state = LocalState.ReachableState(_variables); 2922protected override LocalState UnreachableState() 2924return LocalState.UnreachableState(_variables); 2927protected override LocalState ReachableBottomState() 2930return LocalState.ReachableStateWithNotNulls(_variables); 2963var parameterDefaultsNotAssignedState = State.Clone(); 3088var joinedState = this.StateWhenTrue.Clone(); 3320var state = TopState(); 3346var startingState = localFunctionState.StartingState; 3389LocalState state, 3415var oldState = this.State; 3492void enforceMemberNotNull(SyntaxNode? syntax, LocalState state) 3519var state = State.GetStateForVariables(localFunctionState.StartingState.Id); 3635var currentState = State; 4629private void SetNotNullResultForLambda(BoundExpression node, LocalState stateForLambda) 5129var stateAfterLeft = this.State; 5132var stateWhenNotNull = this.State; 5188LocalState getUnconditionalStateWhenNotNull(BoundExpression otherOperand, PossiblyConditionalState conditionalStateWhenNotNull) 5190LocalState stateWhenNotNull; 5226var stateWhenNotNull = getUnconditionalStateWhenNotNull(leftOperand, conditionalStateWhenNotNull); 5559ref LocalState stateToUpdate = ref whenTrue ? ref this.StateWhenTrue : ref this.StateWhenFalse; 5565protected override bool VisitInterpolatedStringHandlerParts(BoundInterpolatedStringBase node, bool usesBoolReturns, bool firstPartIsConditional, ref LocalState shortCircuitState) 5670private void MarkSlotsAsNotNull(ArrayBuilder<int> slots, ref LocalState stateToUpdate) 5678private void LearnFromNonNullTest(BoundExpression expression, ref LocalState state) 5701private void LearnFromNonNullTest(int slot, ref LocalState state) 5706private void LearnFromNullTest(BoundExpression expression, ref LocalState state) 5724private void LearnFromNullTest(int slot, TypeSymbol? expressionType, ref LocalState state, bool markDependentSlotsNotNull) 5744private void MarkDependentSlotsNotNull(int slot, TypeSymbol expressionType, ref LocalState state, int depth = 2) 5825var leftState = this.State.Clone(); 6044var savedState = this.State.Clone(); 6153var consequenceState = this.StateWhenTrue; 6154var alternativeState = this.StateWhenFalse; 6279BoundExpression node, BoundExpression originalConsequence, BoundExpression originalAlternative, LocalState consequenceState, LocalState alternativeState, 6326LocalState consequenceState, 6327LocalState alternativeState, 6347(BoundExpression, Conversion, TypeWithState) visitConditionalOperand(LocalState state, BoundExpression operand) 6360(TypeWithAnnotations LValueType, TypeWithState RValueType) visitConditionalRefOperand(LocalState state, BoundExpression operand) 6383LocalState state, 7626void applyMemberPostConditions(int receiverSlot, TypeSymbol type, ImmutableArray<string> members, ref LocalState state) 7639void markMembersAsNotNull(int receiverSlot, TypeSymbol type, string memberName, ref LocalState state) 8063var originalWhenFalse = StateWhenFalse.Clone(); 8069var newWhenTrue = State.Clone(); 8231private static VariableState GetVariableState(Variables variables, LocalState localState) 8901var savedState = this.State.Clone(); 9284Optional<LocalState> stateForLambda = default, 10358var stateForLambda = this.State.Clone(); 10370private void VisitLambda(BoundLambda node, NamedTypeSymbol? delegateTypeOpt, Optional<LocalState> initialState = default) 12128var leftTrue = this.StateWhenTrue; 12129var leftFalse = this.StateWhenFalse; 12145var leftTrue = this.StateWhenTrue; 12146var leftFalse = this.StateWhenFalse; 12158var rightState = State.Clone(); 12175var leftState = isAnd ? leftFalse : leftTrue; 12212protected override void AfterLeftChildOfBinaryLogicalOperatorHasBeenVisited(BoundExpression node, BoundExpression right, bool isAnd, bool isBool, ref LocalState leftTrue, ref LocalState leftFalse) 12307LocalState stateWhenNotNull; 12799protected override void VisitCatchBlock(BoundCatchBlock node, ref LocalState finallyState) 12915protected override string Dump(LocalState state) 12920protected override bool Meet(ref LocalState self, ref LocalState other) 12937protected override bool Join(ref LocalState self, ref LocalState other) 12974private LocalState CloneAndUnsplit(ref PossiblyConditionalState conditionalState) 12981var state = conditionalState.StateWhenTrue.Clone(); 13023internal LocalState Value; 13025internal Boxed(LocalState value) 13046internal static LocalState Create(LocalStateSnapshot snapshot) 13061public static LocalState ReachableState(Variables variables) 13066public static LocalState UnreachableState(Variables variables) 13071public static LocalState ReachableStateWithNotNulls(Variables variables) 13095private static LocalState CreateReachableOrUnreachableState(Variables variables, bool reachable) 13104public LocalState CreateNestedMethodState(Variables variables) 13133bool hasVariableCore(ref LocalState state, int id, int index) 13151static bool hasValue(ref LocalState state, int slot) 13161static bool hasValueCore(ref LocalState state, int id, int index) 13290internal LocalState GetStateForVariables(int id) 13292var state = this; 13304public LocalState Clone() 13310public bool Join(in LocalState other) 13339public bool Meet(in LocalState other) 13430public LocalState StartingState; 13432public LocalFunctionState(LocalState unreachableState) 13444return new LocalFunctionState(LocalState.UnreachableState(variables));
FlowAnalysis\NullableWalker.SnapshotManager.cs (1)
208internal void TakeIncrementalSnapshot(BoundNode? node, LocalState currentState)
FlowAnalysis\NullableWalker_Patterns.cs (21)
37var currentState = State; 273protected override LocalState VisitSwitchStatementDispatch(BoundSwitchStatement node) 311var afterSwitchState = labelStateMap.TryGetValue(node.BreakLabel, out var stateAndReachable) ? stateAndReachable.state : UnreachableState(); 339public LocalState State; 340public LocalState StateWhenTrue; 341public LocalState StateWhenFalse; 344public PossiblyConditionalState(LocalState stateWhenTrue, LocalState stateWhenFalse) 352public PossiblyConditionalState(LocalState state) 374private PooledDictionary<LabelSymbol, (LocalState state, bool believedReachable)> LearnFromDecisionDag( 416var labelStateMap = PooledDictionary<LabelSymbol, (LocalState state, bool believedReachable)>.GetInstance(); 729void learnFromNonNullTest(int inputSlot, ref LocalState state) 804void gotoNode(BoundDecisionDagNode node, LocalState state, bool believedReachable) 893var endState = UnreachableState(); 987PooledDictionary<LabelSymbol, (LocalState state, bool believedReachable)> labelStateMap, 1001var armState = getStateForArm(arm, labelStateMap); 1032PooledDictionary<LabelSymbol, (LocalState state, bool believedReachable)> labelStateMap, 1044LocalState getStateForArm(BoundSwitchExpressionArm arm, PooledDictionary<LabelSymbol, (LocalState state, bool believedReachable)> labelStateMap) 1061var trueState = labelStateMap.TryGetValue(node.IsNegated ? node.WhenFalseLabel : node.WhenTrueLabel, out var s1) ? s1.state : UnreachableState(); 1062var falseState = labelStateMap.TryGetValue(node.IsNegated ? node.WhenTrueLabel : node.WhenFalseLabel, out var s2) ? s2.state : UnreachableState();