12 instantiations of BoundDagTemp
Microsoft.CodeAnalysis.CSharp (12)
BoundTree\BoundDagEvaluation.cs (9)
135return new BoundDagTemp(Syntax, Type, this); 162return new BoundDagTemp(Syntax, Field.Type, this); 176return new BoundDagTemp(Syntax, Property.Type, this); 199return new BoundDagTemp(Syntax, Property.Type, this); 230return new BoundDagTemp(Syntax, IndexerType, this); 267return new BoundDagTemp(Syntax, SliceType, this); 328builder.Add(new BoundDagTemp(Syntax, parameter.Type, this, i)); 340return new BoundDagTemp(Syntax, parameter.Type, this, 0); 346return new BoundDagTemp(Syntax, DeconstructMethod.ReturnType, this, index: -1);
BoundTree\BoundDagTemp.cs (1)
21public static BoundDagTemp ForOriginalInput(SyntaxNode syntax, TypeSymbol type) => new BoundDagTemp(syntax, type, source: null, 0);
BoundTree\Constructors.cs (1)
649public static BoundDagTemp ForOriginalInput(BoundExpression expr) => new BoundDagTemp(expr.Syntax, expr.Type!, source: null);
Generated\BoundNodes.xml.Generated.cs (1)
5281var result = new BoundDagTemp(this.Syntax, type, source, index, this.HasErrors);
452 references to BoundDagTemp
Microsoft.CodeAnalysis.CSharp (452)
Binder\DecisionDagBuilder.cs (206)
135var rootIdentifier = BoundDagTemp.ForOriginalInput(inputExpression); 148var rootIdentifier = BoundDagTemp.ForOriginalInput(switchGoverningExpression); 173var rootIdentifier = BoundDagTemp.ForOriginalInput(switchExpressionInput); 188BoundDagTemp input, 204BoundDagTemp input, 225BoundDagTemp temp = binding.TempContainingValue; 323BoundDagTemp input, 330private readonly struct TestInputOutputInfo(BoundDagTemp dagTemp, BoundPropertySubpatternMember? unionValue) 332public readonly BoundDagTemp DagTemp = dagTemp; 335public static explicit operator TestInputOutputInfo(BoundDagTemp dagTemp) 340public static explicit operator BoundDagTemp(TestInputOutputInfo info) 412private BoundDagTemp PrepareForUnionValuePropertyMatching(ref TestInputOutputInfo input, ArrayBuilder<Tests> tests) 417BoundDagTemp temp = MakeUnionValue(input.DagTemp, unionValue, out BoundDagEvaluation valueEvaluation); 422return (BoundDagTemp)input; 425private BoundDagTemp MakeUnionValue(BoundDagTemp input, BoundPropertySubpatternMember unionValue, out BoundDagEvaluation valueEvaluation) 430var result = valueEvaluation.MakeResultTemp(); 436internal static bool IsUnionValue(BoundDagTemp input, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 464internal static bool IsUnionValueEvaluation(BoundDagEvaluation? source, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 506var valueAsITuple = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 511var lengthTemp = lengthEvaluation.MakeResultTemp(); 514var getItemPropertyInput = OriginalInput(valueAsITuple, getItemProperty); 519var indexTemp = indexEvaluation.MakeResultTemp(); 532private BoundDagTemp OriginalInput(BoundDagTemp input, Symbol symbol) 556internal static BoundDagTemp OriginalInput(BoundDagTemp input) 593BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 618BoundDagTemp input, 632private static bool IsUnionTryGetValueReturn(BoundDagTemp input, [NotNullWhen(true)] out TypeSymbol? targetType, [NotNullWhen(true)] out BoundDagTemp? unionInstance, [NotNullWhen(true)] out BoundDagDeconstructEvaluation? tryGetValueEvaluation) 657internal static bool IsUnionTryGetValueEvaluation([NotNullWhen(true)] BoundDagEvaluation? evaluation, [NotNullWhen(true)] out TypeSymbol? targetType, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 684internal static bool IsUnionTryGetValueValue(BoundDagTemp input, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 706private static bool IsUnionHasValue(BoundDagTemp input, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 749var temp = hasValueEvaluation.MakeResultTemp(); 794var boolResult = deconstructEvaluation.MakeReturnValueTemp(); 802var outParameterTemp = deconstructEvaluation.MakeFirstOutParameterTemp(); 809BoundDagTemp typeEvaluationTemp = typeEvaluation.MakeResultTemp(); 828BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 872BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, builder); 888BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 902BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 910private static Tests MakeConstantTest(SyntaxNode syntax, BoundDagTemp input, ConstantValue constantValue) 941BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 946ArrayBuilder<BoundDagTemp> outParamTemps = evaluation.MakeOutParameterTemps(); 970BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 976var element = evaluation.MakeResultTemp(); 985BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 995BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 997BoundDagTemp currentInput = input; 1028BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 1036bool tryMakeTestsForSubpatternMemberReceiver(BoundPropertySubpattern subpattern, BoundPropertySubpatternMember member, ref BoundDagTemp input) 1044input = (BoundDagTemp)MakeConvertToType((TestInputOutputInfo)input, member.Syntax, member.Receiver.Type.StrippedType(), isExplicitTest: false, tests); 1055bool tryMakeTestsForSubpatternMember(BoundPropertySubpattern subpattern, [NotNullWhen(true)] BoundPropertySubpatternMember? member, ref BoundDagTemp input, bool isLengthOrCount) 1150BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, builder); 1181BoundDagTemp output = PrepareForUnionValuePropertyMatching(ref outputInfo, tests); 1298DagState uniquifyState(FrozenArrayBuilder<StateForCase> cases, ImmutableDictionary<BoundDagTemp, IValueSet> remainingValues) 1311var newRemainingValues = ImmutableDictionary.CreateBuilder<BoundDagTemp, IValueSet>(); 1357ImmutableDictionary<BoundDagTemp, IValueSet>.Empty); 1434var tempToIndex = PooledDictionary<BoundDagTemp, int>.GetInstance(); 1511OneOrMany<BoundDagTemp> outputs = eval.AllOutputs(); 1514foreach (var temp in outputs) 1567static void markTempsUsedInBindings(PooledDictionary<BoundDagTemp, int> tempToIndex, ref int nextTempIndex, ref BitVector usedTemps, StateForCase stateForCase) 1575static void markUsedTemp(PooledDictionary<BoundDagTemp, int> tempToIndex, ref int nextTempIndex, ref BitVector usedTemps, BoundDagTemp temp) 1587static void markAllInputsUsed(PooledDictionary<BoundDagTemp, int> tempToIndex, ref int nextTempIndex, ref BitVector usedTemps, BoundDagTest test) 1589foreach (var temp in test.AllInputs()) 1714out ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1716out ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1751ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1752ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1756ImmutableDictionary<BoundDagTemp, IValueSet> values, 1778ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1779ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1784var input = test.Input; 1797ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1798ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1801splitValues<TValueSet>(ImmutableDictionary<BoundDagTemp, IValueSet> values, BoundDagTemp input, TValueSet fromTestPassing) where TValueSet : IValueSet 1815ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1816ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1841ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1842ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1862ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1863ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1883private static (BoundDagTemp? lengthTemp, int offset) TryGetTopLevelLengthTemp(BoundDagPropertyEvaluation e) 1887BoundDagTemp input = e.Input; 1888BoundDagTemp? lengthTemp = null; 1899internal static (BoundDagTemp input, BoundDagTemp lengthTemp, int index) GetCanonicalInput(BoundDagIndexerEvaluation e) 1902BoundDagTemp input = e.Input; 1903BoundDagTemp lengthTemp = e.LengthTemp; 2194BoundDagTemp? testUnionInstance; 2206BoundDagTemp? otherUnionInstance; 2303static UnionTestKind getUnionTestKind(BoundDagTest test, out TypeSymbol? targetType, out BoundDagTemp? testUnionInstance) 2341static bool isAnyUnionValueNullTest(BoundDagTest test, [NotNullWhen(true)] out BoundDagTemp? testUnionInstance) 2347static bool isAnyUnionValueNonNullTest(BoundDagTest test, [NotNullWhen(true)] out BoundDagTemp? testUnionInstance) 2353static bool isAnyUnionValueTypeTest(BoundDagTest test, [NotNullWhen(true)] out TypeSymbol? targetType, [NotNullWhen(true)] out BoundDagTemp? testUnionInstance) 2366static bool isUnionHasValueTest(BoundDagTest test, out bool sense, [NotNullWhen(true)] out BoundDagTemp? testUnionInstance) 2384private static bool IsUnionTryGetValueTest(BoundDagTest test, [NotNullWhen(true)] out TypeSymbol? targetType, [NotNullWhen(true)] out BoundDagTemp? testUnionInstance, [NotNullWhen(true)] out BoundDagDeconstructEvaluation? tryGetValueEvaluation) 2423private static bool IsSameEntity(BoundDagTemp input1, BoundDagTemp input2) 2425BoundDagTemp s1Input = OriginalInput(input1); 2426BoundDagTemp s2Input = OriginalInput(input2); 2444if (IsAnyUnionValue(s1.Input, out BoundDagTemp? s1UnionInstance) && 2445IsAnyUnionValue(s2.Input, out BoundDagTemp? s2UnionInstance)) 2505(s1Input, BoundDagTemp s1LengthTemp, int s1Index) = GetCanonicalInput(s1); 2506(s2Input, BoundDagTemp s2LengthTemp, int s2Index) = GetCanonicalInput(s2); 2563(BoundDagTemp s1Input, BoundDagTemp s1LengthTemp, int s1Index) = GetCanonicalInput(s1); 2564(BoundDagTemp s2Input, BoundDagTemp s2LengthTemp, int s2Index) = GetCanonicalInput(s2); 2584BoundDagTemp s1Input = NotTypeEvaluationInput(s1.Input.Source); 2585BoundDagTemp s2Input = NotTypeEvaluationInput(s2.Input.Source); 2597BoundDagTemp s1OriginalInput = NotTypeEvaluationInput(s1); 2598BoundDagTemp s2OriginalInput = NotTypeEvaluationInput(s2); 2606if (IsAnyUnionValue(s1OriginalInput, out BoundDagTemp? s1UnionInstance) && 2607IsAnyUnionValue(s2OriginalInput, out BoundDagTemp? s2UnionInstance)) 2654private static bool IsAnyUnionValue(BoundDagTemp input, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 2664internal static BoundDagTemp NotTypeEvaluationInput(BoundDagTemp input) 2675internal static BoundDagTemp NotTypeEvaluationInput(BoundDagTest test) 2826string tempName(BoundDagTemp t) 3022/// A <see cref="BoundDagTemp"/> absent from this dictionary means that all values of the type are possible. 3024public ImmutableDictionary<BoundDagTemp, IValueSet> RemainingValues { get; private set; } = null!; 3053public static DagState GetInstance(FrozenArrayBuilder<StateForCase> cases, ImmutableDictionary<BoundDagTemp, IValueSet> remainingValues) 3097internal void UpdateRemainingValues(ImmutableDictionary<BoundDagTemp, IValueSet> newRemainingValues) 3254public readonly ImmutableDictionary<BoundDagTemp, BoundDagTemp> FinalTempMap; 3264ImmutableDictionary<BoundDagTemp, BoundDagTemp> finalTempMap, 3277protected abstract RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e); 3281return RemoveEvaluationAndUpdateTempReferences(dagBuilder, state, bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp>.Empty, e); 3284protected Tests RemoveEvaluationAndUpdateTempReferences(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3330private static void AddBindingsPatchingAssignments(ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> oldTempMap, ImmutableDictionary<BoundDagTemp, BoundDagTemp> newTempMap, ArrayBuilder<Tests> assignments) 3339if (TryGetTempReplacement(newTempMap, b.TempContainingValue, out BoundDagTemp? useValueFrom)) 3341if (!TryGetTempReplacement(oldTempMap, b.TempContainingValue, out BoundDagTemp? oldReplacement) || 3351private static bool TryGetTempReplacement(ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagTemp oldTemp, [NotNullWhen(true)] out BoundDagTemp? newTemp) 3356while (tempMap.TryGetValue(newTemp, out BoundDagTemp? nextTemp)) 3393protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3417protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3521if (TryGetTopLevelLengthTemp(e) is (BoundDagTemp lengthTemp, int offset)) 3564protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3638public static Tests RemoveEvaluation(One tests, DecisionDagBuilder builder, DagState state, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e, out Tests? condition) 3699private static Tests RemoveSimpleEvaluationWithResultTemp(One tests, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e1) 3711private static void AddResultTempReplacement(ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation oldEval, BoundDagEvaluation newEval) 3716private static void AddTempReplacement(ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagTemp oldTemp, BoundDagTemp newTemp) 3718var current = newTemp; 3733private static Tests RemoveDeconstructEvaluation(One tests, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagDeconstructEvaluation e1) 3745private static void AddOutParameterTempsReplacement(ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagDeconstructEvaluation oldDeconstruct, BoundDagDeconstructEvaluation newDeconstruct) 3747ArrayBuilder<BoundDagTemp> newOutParamTemps = newDeconstruct.MakeOutParameterTemps(); 3748ArrayBuilder<BoundDagTemp> oldOutParamTemps = oldDeconstruct.MakeOutParameterTemps(); 3757private static Tests RemoveTypeEvaluation(One tests, DecisionDagBuilder dagBuilder, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagTypeEvaluation e1) 3771BoundDagTemp e1Input = NotTypeEvaluationInput(e1); 3812BoundDagTemp oldTemp = typeEval.MakeResultTemp(); 3813BoundDagTemp newTemp = newTypeEval.MakeResultTemp(); 3834private static Tests RemoveIndexerEvaluation(One tests, DecisionDagBuilder dagBuilder, DagState state, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagIndexerEvaluation s1, out Tests? condition) 3844(BoundDagTemp s1Input, BoundDagTemp s1LengthTemp, int s1Index) = GetCanonicalInput(s1); 3845(BoundDagTemp s2Input, BoundDagTemp s2LengthTemp, int s2Index) = GetCanonicalInput(s2); 3892private static BoundDagTest UpdateDagTempReferences(BoundDagTest test, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap) 3910if (!TryGetTempReplacement(tempMap, eval.Input, out BoundDagTemp? replacement)) 3922if (!TryGetTempReplacement(tempMap, indexer.Input, out BoundDagTemp? inputReplacement)) 3927if (!TryGetTempReplacement(tempMap, indexer.LengthTemp, out BoundDagTemp? lengthReplacement)) 3938if (!TryGetTempReplacement(tempMap, slice.Input, out BoundDagTemp? inputReplacement)) 3943if (!TryGetTempReplacement(tempMap, slice.LengthTemp, out BoundDagTemp? lengthReplacement)) 3954if (!TryGetTempReplacement(tempMap, assignment.Input, out BoundDagTemp? inputReplacement)) 3964if (!TryGetTempReplacement(tempMap, deconstruct.Input, out BoundDagTemp? replacement)) 3986if (!TryGetTempReplacement(tempMap, test.Input, out BoundDagTemp? replacement)) 4023protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 4144protected sealed override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 4150ImmutableDictionary<BoundDagTemp, BoundDagTemp> TempMapToRestore
Binder\DecisionDagBuilder_CheckOrReachability.cs (9)
75BoundDagTemp rootIdentifier = BoundDagTemp.ForOriginalInput(inputExpression); 121BoundDagTemp rootIdentifier = BoundDagTemp.ForOriginalInput(inputExpression); 172BoundDagTemp rootIdentifier = BoundDagTemp.ForOriginalInput(inputExpression); 298public readonly BoundDagTemp RootIdentifier; 305DecisionDagBuilder builder, BoundDagTemp rootIdentifier, SyntaxNode syntax, PooledHashSet<SyntaxNode> redundantNodes) 343BoundDagTemp rootIdentifier,
Binder\DecisionDagBuilder_ListPatterns.cs (6)
31BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 42BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 48var lengthTemp = lengthEvaluation.MakeResultTemp(); 72var sliceTemp = sliceEvaluation.MakeResultTemp(); 87var indexTemp = indexEvaluation.MakeResultTemp(); 94BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests);
Binder\PatternExplainer.cs (23)
221BoundDagTemp rootIdentifier, 251static string samplePatternFromOtherPaths(Binder binder, BoundDagTemp rootIdentifier, BoundDecisionDagNode rootNode, 286out Dictionary<BoundDagTemp, ArrayBuilder<(BoundDagTest, bool)>> constraints, 287out Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluations) 289constraints = new Dictionary<BoundDagTemp, ArrayBuilder<(BoundDagTest, bool)>>(); 290evaluations = new Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>>(); 301BoundDagTemp temp = test.Input; 319BoundDagTemp temp = e.Evaluation.Input; 334BoundDagTemp input, 335Dictionary<BoundDagTemp, ArrayBuilder<(BoundDagTest test, bool sense)>> constraintMap, 336Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluationMap, 354static ImmutableArray<T> getArray<T>(Dictionary<BoundDagTemp, ArrayBuilder<T>> map, BoundDagTemp temp) 401var typedTemp = te.MakeResultTemp(); 417var typedTemp = te.MakeResultTemp(); 461var lengthTemp = lengthOrCount.MakeResultTemp(); 489var indexerTemp = e.MakeResultTemp(); 508var sliceTemp = slice.MakeResultTemp(); 537var elementTemp = e.MakeResultTemp(); 661ArrayBuilder<BoundDagTemp> outParamTemps = e.MakeOutParameterTemps(); 665foreach (var elementTemp in outParamTemps) 697var subInput = e.MakeResultTemp(); 704var subInput = e.MakeResultTemp();
Binder\SwitchExpressionBinder.cs (1)
106this, BoundDagTemp.ForOriginalInput(boundInputExpression), nodes, n, nullPaths: false, out bool requiresFalseWhenClause, out bool unnamedEnumValue);
BoundTree\BoundDagEvaluation.cs (48)
86public sealed override BoundDagTest UpdateTestImpl(BoundDagTemp input) => Update(input); 88public abstract BoundDagTemp MakeResultTemp(); 89public new BoundDagEvaluation Update(BoundDagTemp input) => UpdateEvaluationImpl(input); 90public abstract BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input); 92public virtual OneOrMany<BoundDagTemp> AllOutputs() 94return new OneOrMany<BoundDagTemp>(MakeResultTemp()); 133public override BoundDagTemp MakeResultTemp() 138public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 139public new BoundDagTypeEvaluation Update(BoundDagTemp input) 148if (DecisionDagBuilder.IsUnionTryGetValueEvaluation(nonTypeEvaluation, out _, out BoundDagTemp? unionInstance) || 160public override BoundDagTemp MakeResultTemp() 165public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 166public new BoundDagFieldEvaluation Update(BoundDagTemp input) 174public override BoundDagTemp MakeResultTemp() 179public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 180public new BoundDagPropertyEvaluation Update(BoundDagTemp input) 196public override BoundDagTemp MakeResultTemp() 202public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 203public new BoundDagIndexEvaluation Update(BoundDagTemp input) 228public override BoundDagTemp MakeResultTemp() 233public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 234public new BoundDagIndexerEvaluation Update(BoundDagTemp input) 239public BoundDagIndexerEvaluation Update(BoundDagTemp lengthTemp, BoundDagTemp input) 244public override OneOrMany<BoundDagTemp> AllInputs() 246return new OneOrMany<BoundDagTemp>([Input, LengthTemp]); 265public override BoundDagTemp MakeResultTemp() 270public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 271public new BoundDagSliceEvaluation Update(BoundDagTemp input) 276public BoundDagSliceEvaluation Update(BoundDagTemp lengthTemp, BoundDagTemp input) 281public override OneOrMany<BoundDagTemp> AllInputs() 283return new OneOrMany<BoundDagTemp>([Input, LengthTemp]); 304public override BoundDagTemp MakeResultTemp() 309public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 310public new BoundDagAssignmentEvaluation Update(BoundDagTemp input) 318public ArrayBuilder<BoundDagTemp> MakeOutParameterTemps() 323var builder = ArrayBuilder<BoundDagTemp>.GetInstance(count); 334public BoundDagTemp MakeFirstOutParameterTemp() 343public BoundDagTemp MakeReturnValueTemp() 349public override BoundDagTemp MakeResultTemp() 354public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 355public new BoundDagDeconstructEvaluation Update(BoundDagTemp input) 360public override OneOrMany<BoundDagTemp> AllOutputs() 371return new OneOrMany<BoundDagTemp>(one); 374return new OneOrMany<BoundDagTemp>(builder.ToImmutableAndFree()); 386public override BoundDagTemp MakeResultTemp() 391public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input);
BoundTree\BoundDagRelationalTest.cs (2)
11public override BoundDagTest UpdateTestImpl(BoundDagTemp input) => Update(input); 12public new BoundDagRelationalTest Update(BoundDagTemp input)
BoundTree\BoundDagTemp.cs (4)
21public static BoundDagTemp ForOriginalInput(SyntaxNode syntax, TypeSymbol type) => new BoundDagTemp(syntax, type, source: null, 0); 23public override bool Equals(object? obj) => obj is BoundDagTemp other && this.Equals(other); 25public bool Equals(BoundDagTemp other) 40public bool IsEquivalentTo(BoundDagTemp other)
BoundTree\BoundDagTest.cs (11)
51public BoundDagTest Update(BoundDagTemp input) => UpdateTestImpl(input); 52public abstract BoundDagTest UpdateTestImpl(BoundDagTemp input); 54public virtual OneOrMany<BoundDagTemp> AllInputs() 56return new OneOrMany<BoundDagTemp>(Input); 140public override BoundDagTest UpdateTestImpl(BoundDagTemp input) => Update(input); 141public new BoundDagValueTest Update(BoundDagTemp input) 149public override BoundDagTest UpdateTestImpl(BoundDagTemp input) => Update(input); 154public override BoundDagTest UpdateTestImpl(BoundDagTemp input) => Update(input); 155public new BoundDagNonNullTest Update(BoundDagTemp input) 163public override BoundDagTest UpdateTestImpl(BoundDagTemp input) => Update(input); 164public new BoundDagTypeTest Update(BoundDagTemp input)
BoundTree\BoundPatternBinding.cs (2)
15public readonly BoundDagTemp TempContainingValue; 16public BoundPatternBinding(BoundExpression variableAccess, BoundDagTemp tempContainingValue)
BoundTree\Constructors.cs (1)
649public static BoundDagTemp ForOriginalInput(BoundExpression expr) => new BoundDagTemp(expr.Syntax, expr.Type!, source: null);
FlowAnalysis\NullableWalker_Patterns.cs (16)
387var rootTemp = BoundDagTemp.ForOriginalInput(expression); 411var tempMap = PooledDictionary<BoundDagTemp, (int slot, TypeSymbol type)>.GetInstance(); 450ArrayBuilder<BoundDagTemp> outParamTemps = e.MakeOutParameterTemps(); 451foreach (var output in outParamTemps) 460var output = e.MakeResultTemp(); 469var output = e.MakeResultTemp(); 480var output = e.MakeResultTemp(); 494var output = e.MakeResultTemp(); 503var output = e.MakeResultTemp(); 513var output = e.MakeResultTemp(); 624var tempSource = binding.TempContainingValue; 679int getOrMakeAndRegisterDagTempSlot(BoundDagTemp output) 851void addToTempMap(BoundDagTemp output, int slot, TypeSymbol type) 942int makeDagTempSlot(TypeWithAnnotations type, BoundDagTemp temp) 1005_binder, BoundDagTemp.ForOriginalInput(node.Expression), nodes, leaf, nullPaths: true, out bool requiresFalseWhenClause, out _);
Generated\BoundNodes.xml.Generated.cs (98)
5245protected BoundDagTest(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5254public BoundDagTemp Input { get; } 5277public BoundDagTemp Update(TypeSymbol type, BoundDagEvaluation? source, int index) 5281var result = new BoundDagTemp(this.Syntax, type, source, index, this.HasErrors); 5291public BoundDagTypeTest(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5306public BoundDagTypeTest Update(TypeSymbol type, BoundDagTemp input) 5320public BoundDagNonNullTest(SyntaxNode syntax, bool isExplicitTest, BoundDagTemp input, bool hasErrors = false) 5334public BoundDagNonNullTest Update(bool isExplicitTest, BoundDagTemp input) 5348public BoundDagExplicitNullTest(SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5360public new BoundDagExplicitNullTest Update(BoundDagTemp input) 5374public BoundDagValueTest(SyntaxNode syntax, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5389public BoundDagValueTest Update(ConstantValue value, BoundDagTemp input) 5403public BoundDagRelationalTest(SyntaxNode syntax, BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5420public BoundDagRelationalTest Update(BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input) 5434protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5446public BoundDagDeconstructEvaluation(SyntaxNode syntax, MethodSymbol deconstructMethod, BoundDagTemp input, bool hasErrors = false) 5461public BoundDagDeconstructEvaluation Update(MethodSymbol deconstructMethod, BoundDagTemp input) 5475public BoundDagTypeEvaluation(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5490public BoundDagTypeEvaluation Update(TypeSymbol type, BoundDagTemp input) 5504public BoundDagFieldEvaluation(SyntaxNode syntax, FieldSymbol field, BoundDagTemp input, bool hasErrors = false) 5519public BoundDagFieldEvaluation Update(FieldSymbol field, BoundDagTemp input) 5533public BoundDagPropertyEvaluation(SyntaxNode syntax, PropertySymbol property, bool isLengthOrCount, BoundDagTemp input, bool hasErrors = false) 5550public BoundDagPropertyEvaluation Update(PropertySymbol property, bool isLengthOrCount, BoundDagTemp input) 5564public BoundDagIndexEvaluation(SyntaxNode syntax, PropertySymbol property, int index, BoundDagTemp input, bool hasErrors = false) 5581public BoundDagIndexEvaluation Update(PropertySymbol property, int index, BoundDagTemp input) 5595public BoundDagIndexerEvaluation(SyntaxNode syntax, TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5619public BoundDagTemp LengthTemp { get; } 5628public BoundDagIndexerEvaluation Update(TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input) 5642public BoundDagSliceEvaluation(SyntaxNode syntax, TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5667public BoundDagTemp LengthTemp { get; } 5677public BoundDagSliceEvaluation Update(TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input) 5691public BoundDagAssignmentEvaluation(SyntaxNode syntax, BoundDagTemp target, BoundDagTemp input, bool hasErrors = false) 5701public BoundDagTemp Target { get; } 5706public BoundDagAssignmentEvaluation Update(BoundDagTemp target, BoundDagTemp input) 5720public BoundDagPassThroughEvaluation(SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5732public new BoundDagPassThroughEvaluation Update(BoundDagTemp input) 9370return VisitDagTemp((BoundDagTemp)node, arg); 9715public virtual R VisitDagTemp(BoundDagTemp node, A arg) => this.DefaultVisit(node, arg); 9956public virtual BoundNode? VisitDagTemp(BoundDagTemp node) => this.DefaultVisit(node); 10596public override BoundNode? VisitDagTemp(BoundDagTemp node) 11983public override BoundNode? VisitDagTemp(BoundDagTemp node) 11991BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11997BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 12002BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 12007BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 12012BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 12018BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 12023BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 12030BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 12036BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 12042BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 12047BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 12051BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 12057BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 12061BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 12067BoundDagTemp target = (BoundDagTemp)this.Visit(node.Target); 12068BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 12073BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 14171BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 14178BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 14185BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 14192BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 14199BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 14203BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 14210BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 14214BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 16664public override TreeDumperNode VisitDagTemp(BoundDagTemp node, object? arg) => new TreeDumperNode("dagTemp", null, new TreeDumperNode[]
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (4)
360BoundExpression inputTemp = _tempAllocator.GetTemp(BoundDagTemp.ForOriginalInput(loweredSwitchGoverningExpression)); 504var input = ((BoundTestDecisionDagNode)node).Test.Input; 552BoundDagTemp input) 561BoundDagTemp input,
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (18)
56private readonly PooledDictionary<BoundDagTemp, BoundExpression> _map = PooledDictionary<BoundDagTemp, BoundExpression>.GetInstance(); 94public BoundExpression GetTemp(BoundDagTemp dagTemp) 115public bool TrySetTemp(BoundDagTemp dagTemp, BoundExpression translation) 143var outputTemp = f.MakeResultTemp(); 153var outputTemp = p.MakeResultTemp(); 185ArrayBuilder<BoundDagTemp> outParamTemps = d.MakeOutParameterTemps(); 186foreach (var outputTemp in outParamTemps) 225var outputTemp = t.MakeResultTemp(); 264var outputTemp = e.MakeResultTemp(); 289var outputTemp = e.MakeResultTemp(); 315var outputTemp = e.MakeResultTemp(); 553var inputDagTemp = BoundDagTemp.ForOriginalInput(loweredInput); 654var originalInput = BoundDagTemp.ForOriginalInput(loweredInput.Syntax, loweredInput.Type); 662var temp = fieldFetchEvaluation.MakeResultTemp(); 675void storeToTemp(BoundDagTemp temp, BoundExpression expr)
Utilities\ValueSetFactory.cs (3)
65public static IConstantValueSetFactory? ForInput(BoundDagTemp input) 72public static ITypeUnionValueSetFactory? TypeUnionValueSetFactoryForInput(CSharpCompilation compilation, BoundDagTemp input) 74if (DecisionDagBuilder.IsUnionValue(input, out BoundDagTemp? unionInstance))