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);
450 references to BoundDagTemp
Microsoft.CodeAnalysis.CSharp (450)
Binder\DecisionDagBuilder.cs (204)
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) 690internal static bool IsUnionTryGetValueValue(BoundDagTemp input, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 712private static bool IsUnionHasValue(BoundDagTemp input, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 755var temp = hasValueEvaluation.MakeResultTemp(); 800var boolResult = deconstructEvaluation.MakeReturnValueTemp(); 808var outParameterTemp = deconstructEvaluation.MakeFirstOutParameterTemp(); 825BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 869BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, builder); 885BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 899BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 907private static Tests MakeConstantTest(SyntaxNode syntax, BoundDagTemp input, ConstantValue constantValue) 938BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 943ArrayBuilder<BoundDagTemp> outParamTemps = evaluation.MakeOutParameterTemps(); 967BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 973var element = evaluation.MakeResultTemp(); 982BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 992BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 994BoundDagTemp currentInput = input; 1025BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, tests); 1033bool tryMakeTestsForSubpatternMember([NotNullWhen(true)] BoundPropertySubpatternMember? member, ref BoundDagTemp input, bool isLengthOrCount) 1042input = (BoundDagTemp)MakeConvertToType((TestInputOutputInfo)input, member.Syntax, member.Receiver.Type.StrippedType(), isExplicitTest: false, tests); 1125BoundDagTemp input = PrepareForUnionValuePropertyMatching(ref inputInfo, builder); 1156BoundDagTemp output = PrepareForUnionValuePropertyMatching(ref outputInfo, tests); 1273DagState uniquifyState(FrozenArrayBuilder<StateForCase> cases, ImmutableDictionary<BoundDagTemp, IValueSet> remainingValues) 1286var newRemainingValues = ImmutableDictionary.CreateBuilder<BoundDagTemp, IValueSet>(); 1332ImmutableDictionary<BoundDagTemp, IValueSet>.Empty); 1409var tempToIndex = PooledDictionary<BoundDagTemp, int>.GetInstance(); 1486OneOrMany<BoundDagTemp> outputs = eval.AllOutputs(); 1489foreach (var temp in outputs) 1542static void markTempsUsedInBindings(PooledDictionary<BoundDagTemp, int> tempToIndex, ref int nextTempIndex, ref BitVector usedTemps, StateForCase stateForCase) 1550static void markUsedTemp(PooledDictionary<BoundDagTemp, int> tempToIndex, ref int nextTempIndex, ref BitVector usedTemps, BoundDagTemp temp) 1562static void markAllInputsUsed(PooledDictionary<BoundDagTemp, int> tempToIndex, ref int nextTempIndex, ref BitVector usedTemps, BoundDagTest test) 1564foreach (var temp in test.AllInputs()) 1689out ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1691out ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1726ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1727ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1731ImmutableDictionary<BoundDagTemp, IValueSet> values, 1753ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1754ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1759var input = test.Input; 1772ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1773ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1776splitValues<TValueSet>(ImmutableDictionary<BoundDagTemp, IValueSet> values, BoundDagTemp input, TValueSet fromTestPassing) where TValueSet : IValueSet 1790ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1791ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1816ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1817ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1837ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1838ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1858private static (BoundDagTemp? lengthTemp, int offset) TryGetTopLevelLengthTemp(BoundDagPropertyEvaluation e) 1862BoundDagTemp input = e.Input; 1863BoundDagTemp? lengthTemp = null; 1874internal static (BoundDagTemp input, BoundDagTemp lengthTemp, int index) GetCanonicalInput(BoundDagIndexerEvaluation e) 1877BoundDagTemp input = e.Input; 1878BoundDagTemp lengthTemp = e.LengthTemp; 2147BoundDagTemp? testUnionInstance; 2159BoundDagTemp? otherUnionInstance; 2256static UnionTestKind getUnionTestKind(BoundDagTest test, out TypeSymbol? targetType, out BoundDagTemp? testUnionInstance) 2294static bool isAnyUnionValueNullTest(BoundDagTest test, [NotNullWhen(true)] out BoundDagTemp? testUnionInstance) 2300static bool isAnyUnionValueNonNullTest(BoundDagTest test, [NotNullWhen(true)] out BoundDagTemp? testUnionInstance) 2306static bool isAnyUnionValueTypeTest(BoundDagTest test, [NotNullWhen(true)] out TypeSymbol? targetType, [NotNullWhen(true)] out BoundDagTemp? testUnionInstance) 2319static bool isUnionHasValueTest(BoundDagTest test, out bool sense, [NotNullWhen(true)] out BoundDagTemp? testUnionInstance) 2337private static bool IsUnionTryGetValueTest(BoundDagTest test, [NotNullWhen(true)] out TypeSymbol? targetType, [NotNullWhen(true)] out BoundDagTemp? testUnionInstance, [NotNullWhen(true)] out BoundDagDeconstructEvaluation? tryGetValueEvaluation) 2376private static bool IsSameEntity(BoundDagTemp input1, BoundDagTemp input2) 2378BoundDagTemp s1Input = OriginalInput(input1); 2379BoundDagTemp s2Input = OriginalInput(input2); 2397if (IsAnyUnionValue(s1.Input, out BoundDagTemp? s1UnionInstance) && 2398IsAnyUnionValue(s2.Input, out BoundDagTemp? s2UnionInstance)) 2458(s1Input, BoundDagTemp s1LengthTemp, int s1Index) = GetCanonicalInput(s1); 2459(s2Input, BoundDagTemp s2LengthTemp, int s2Index) = GetCanonicalInput(s2); 2516(BoundDagTemp s1Input, BoundDagTemp s1LengthTemp, int s1Index) = GetCanonicalInput(s1); 2517(BoundDagTemp s2Input, BoundDagTemp s2LengthTemp, int s2Index) = GetCanonicalInput(s2); 2537BoundDagTemp s1Input = NotTypeEvaluationInput(s1.Input.Source); 2538BoundDagTemp s2Input = NotTypeEvaluationInput(s2.Input.Source); 2550BoundDagTemp s1OriginalInput = NotTypeEvaluationInput(s1); 2551BoundDagTemp s2OriginalInput = NotTypeEvaluationInput(s2); 2559if (IsAnyUnionValue(s1OriginalInput, out BoundDagTemp? s1UnionInstance) && 2560IsAnyUnionValue(s2OriginalInput, out BoundDagTemp? s2UnionInstance)) 2607private static bool IsAnyUnionValue(BoundDagTemp input, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 2617internal static BoundDagTemp NotTypeEvaluationInput(BoundDagTemp input) 2628internal static BoundDagTemp NotTypeEvaluationInput(BoundDagTest test) 2779string tempName(BoundDagTemp t) 2975/// A <see cref="BoundDagTemp"/> absent from this dictionary means that all values of the type are possible. 2977public ImmutableDictionary<BoundDagTemp, IValueSet> RemainingValues { get; private set; } = null!; 3006public static DagState GetInstance(FrozenArrayBuilder<StateForCase> cases, ImmutableDictionary<BoundDagTemp, IValueSet> remainingValues) 3050internal void UpdateRemainingValues(ImmutableDictionary<BoundDagTemp, IValueSet> newRemainingValues) 3207public readonly ImmutableDictionary<BoundDagTemp, BoundDagTemp> FinalTempMap; 3217ImmutableDictionary<BoundDagTemp, BoundDagTemp> finalTempMap, 3230protected abstract RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e); 3234return RemoveEvaluationAndUpdateTempReferences(dagBuilder, state, bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp>.Empty, e); 3237protected Tests RemoveEvaluationAndUpdateTempReferences(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3283private static void AddBindingsPatchingAssignments(ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> oldTempMap, ImmutableDictionary<BoundDagTemp, BoundDagTemp> newTempMap, ArrayBuilder<Tests> assignments) 3292if (TryGetTempReplacement(newTempMap, b.TempContainingValue, out BoundDagTemp? useValueFrom)) 3294if (!TryGetTempReplacement(oldTempMap, b.TempContainingValue, out BoundDagTemp? oldReplacement) || 3304private static bool TryGetTempReplacement(ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagTemp oldTemp, [NotNullWhen(true)] out BoundDagTemp? newTemp) 3309while (tempMap.TryGetValue(newTemp, out BoundDagTemp? nextTemp)) 3346protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3370protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3474if (TryGetTopLevelLengthTemp(e) is (BoundDagTemp lengthTemp, int offset)) 3517protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3591public static Tests RemoveEvaluation(One tests, DecisionDagBuilder builder, DagState state, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e, out Tests? condition) 3652private static Tests RemoveSimpleEvaluationWithResultTemp(One tests, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e1) 3664private static void AddResultTempReplacement(ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation oldEval, BoundDagEvaluation newEval) 3669private static void AddTempReplacement(ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagTemp oldTemp, BoundDagTemp newTemp) 3671var current = newTemp; 3686private static Tests RemoveDeconstructEvaluation(One tests, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagDeconstructEvaluation e1) 3698private static void AddOutParameterTempsReplacement(ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagDeconstructEvaluation oldDeconstruct, BoundDagDeconstructEvaluation newDeconstruct) 3700ArrayBuilder<BoundDagTemp> newOutParamTemps = newDeconstruct.MakeOutParameterTemps(); 3701ArrayBuilder<BoundDagTemp> oldOutParamTemps = oldDeconstruct.MakeOutParameterTemps(); 3710private static Tests RemoveTypeEvaluation(One tests, DecisionDagBuilder dagBuilder, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagTypeEvaluation e1) 3724BoundDagTemp e1Input = NotTypeEvaluationInput(e1); 3765BoundDagTemp oldTemp = typeEval.MakeResultTemp(); 3766BoundDagTemp newTemp = newTypeEval.MakeResultTemp(); 3787private static Tests RemoveIndexerEvaluation(One tests, DecisionDagBuilder dagBuilder, DagState state, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagIndexerEvaluation s1, out Tests? condition) 3797(BoundDagTemp s1Input, BoundDagTemp s1LengthTemp, int s1Index) = GetCanonicalInput(s1); 3798(BoundDagTemp s2Input, BoundDagTemp s2LengthTemp, int s2Index) = GetCanonicalInput(s2); 3845private static BoundDagTest UpdateDagTempReferences(BoundDagTest test, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap) 3863if (!TryGetTempReplacement(tempMap, eval.Input, out BoundDagTemp? replacement)) 3875if (!TryGetTempReplacement(tempMap, indexer.Input, out BoundDagTemp? inputReplacement)) 3880if (!TryGetTempReplacement(tempMap, indexer.LengthTemp, out BoundDagTemp? lengthReplacement)) 3891if (!TryGetTempReplacement(tempMap, slice.Input, out BoundDagTemp? inputReplacement)) 3896if (!TryGetTempReplacement(tempMap, slice.LengthTemp, out BoundDagTemp? lengthReplacement)) 3907if (!TryGetTempReplacement(tempMap, assignment.Input, out BoundDagTemp? inputReplacement)) 3917if (!TryGetTempReplacement(tempMap, deconstruct.Input, out BoundDagTemp? replacement)) 3939if (!TryGetTempReplacement(tempMap, test.Input, out BoundDagTemp? replacement)) 3976protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 4097protected sealed override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 4103ImmutableDictionary<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)
220BoundDagTemp rootIdentifier, 250static string samplePatternFromOtherPaths(BoundDagTemp rootIdentifier, BoundDecisionDagNode rootNode, 285out Dictionary<BoundDagTemp, ArrayBuilder<(BoundDagTest, bool)>> constraints, 286out Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluations) 288constraints = new Dictionary<BoundDagTemp, ArrayBuilder<(BoundDagTest, bool)>>(); 289evaluations = new Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>>(); 300BoundDagTemp temp = test.Input; 318BoundDagTemp temp = e.Evaluation.Input; 332BoundDagTemp input, 333Dictionary<BoundDagTemp, ArrayBuilder<(BoundDagTest test, bool sense)>> constraintMap, 334Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluationMap, 352static ImmutableArray<T> getArray<T>(Dictionary<BoundDagTemp, ArrayBuilder<T>> map, BoundDagTemp temp) 399var typedTemp = te.MakeResultTemp(); 415var typedTemp = te.MakeResultTemp(); 459var lengthTemp = lengthOrCount.MakeResultTemp(); 487var indexerTemp = e.MakeResultTemp(); 506var sliceTemp = slice.MakeResultTemp(); 535var elementTemp = e.MakeResultTemp(); 659ArrayBuilder<BoundDagTemp> outParamTemps = e.MakeOutParameterTemps(); 661foreach (var elementTemp in outParamTemps) 689var subInput = e.MakeResultTemp(); 696var subInput = e.MakeResultTemp();
Binder\SwitchExpressionBinder.cs (1)
106BoundDagTemp.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)
385var rootTemp = BoundDagTemp.ForOriginalInput(expression); 409var tempMap = PooledDictionary<BoundDagTemp, (int slot, TypeSymbol type)>.GetInstance(); 448ArrayBuilder<BoundDagTemp> outParamTemps = e.MakeOutParameterTemps(); 449foreach (var output in outParamTemps) 458var output = e.MakeResultTemp(); 467var output = e.MakeResultTemp(); 478var output = e.MakeResultTemp(); 492var output = e.MakeResultTemp(); 501var output = e.MakeResultTemp(); 511var output = e.MakeResultTemp(); 622var tempSource = binding.TempContainingValue; 677int getOrMakeAndRegisterDagTempSlot(BoundDagTemp output) 849void addToTempMap(BoundDagTemp output, int slot, TypeSymbol type) 940int makeDagTempSlot(TypeWithAnnotations type, BoundDagTemp temp) 1003BoundDagTemp.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(BoundDagTemp input) 74if (DecisionDagBuilder.IsUnionValue(input, out BoundDagTemp? unionInstance) && ((NamedTypeSymbol)unionInstance.Type).UnionCaseTypes is not [])