36 instantiations of BoundDagTemp
Microsoft.CodeAnalysis.CSharp (36)
Binder\DecisionDagBuilder.cs (5)
337var valueAsITuple = new BoundDagTemp(syntax, iTupleType, valueAsITupleEvaluation); 475input = new BoundDagTemp(syntax, type, evaluation); 541var element = new BoundDagTemp(syntax, method.Parameters[i + extensionExtra].Type, evaluation, i); 565var element = new BoundDagTemp(syntax, field.Type, evaluation); 631input = new BoundDagTemp(member.Syntax, member.Type, evaluation);
Binder\DecisionDagBuilder_ListPatterns.cs (2)
67var sliceTemp = new BoundDagTemp(slicePattern.Syntax, slicePattern.InputType, sliceEvaluation); 82var indexTemp = new BoundDagTemp(subpattern.Syntax, subpattern.InputType, indexEvaluation);
Binder\PatternExplainer.cs (9)
344var typedTemp = new BoundDagTemp(te.Syntax, te.Type, te); 359var typedTemp = new BoundDagTemp(te.Syntax, te.Type, te); 403var lengthTemp = new BoundDagTemp(lengthOrCount.Syntax, lengthOrCount.Property.Type, lengthOrCount); 431var indexerTemp = new BoundDagTemp(e.Syntax, e.IndexerType, e); 450var sliceTemp = new BoundDagTemp(slice.Syntax, slice.SliceType, slice); 479var elementTemp = new BoundDagTemp(e.Syntax, e.Field.Type, e); 547var elementTemp = new BoundDagTemp(e.Syntax, method.Parameters[j + extensionExtra].Type, e, j); 566var subInput = new BoundDagTemp(e.Syntax, e.Field.Type, e); 573var subInput = new BoundDagTemp(e.Syntax, e.Property.Type, e);
BoundTree\BoundDagTemp.cs (1)
21public static BoundDagTemp ForOriginalInput(SyntaxNode syntax, TypeSymbol type) => new BoundDagTemp(syntax, type, source: null, 0);
BoundTree\Constructors.cs (1)
708public static BoundDagTemp ForOriginalInput(BoundExpression expr) => new BoundDagTemp(expr.Syntax, expr.Type!, source: null);
FlowAnalysis\NullableWalker_Patterns.cs (7)
414var output = new BoundDagTemp(e.Syntax, parameterType.Type, e, i); 423var output = new BoundDagTemp(e.Syntax, e.Type, e); 452var output = new BoundDagTemp(e.Syntax, type.Type, e); 498var output = new BoundDagTemp(e.Syntax, type.Type, e); 523var output = new BoundDagTemp(e.Syntax, type.Type, e); 535var output = new BoundDagTemp(e.Syntax, type.Type, e); 802var output = new BoundDagTemp(e.Syntax, type.Type, e, index: index);
Generated\BoundNodes.xml.Generated.cs (1)
5219var result = new BoundDagTemp(this.Syntax, type, source, index, this.HasErrors);
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (10)
143var outputTemp = new BoundDagTemp(f.Syntax, field.Type, f); 153var outputTemp = new BoundDagTemp(p.Syntax, property.Type, p); 189var outputTemp = new BoundDagTemp(d.Syntax, parameter.Type, d, i - extensionExtra); 208var outputTemp = new BoundDagTemp(t.Syntax, type, t); 245var outputTemp = new BoundDagTemp(e.Syntax, type, e); 270var outputTemp = new BoundDagTemp(e.Syntax, e.IndexerType, e); 296var outputTemp = new BoundDagTemp(e.Syntax, e.SliceType, e); 474BoundExpression output = _tempAllocator.GetTemp(new BoundDagTemp(evaluation.Syntax, typeEvaluation1.Type, evaluation)); 490BoundExpression output = _tempAllocator.GetTemp(new BoundDagTemp(evaluation.Syntax, baseType, evaluation)); 627var temp = new BoundDagTemp(expr.Syntax, expr.Type, fieldFetchEvaluation);
237 references to BoundDagTemp
Microsoft.CodeAnalysis.CSharp (237)
Binder\DecisionDagBuilder.cs (72)
133var rootIdentifier = BoundDagTemp.ForOriginalInput(inputExpression); 146var rootIdentifier = BoundDagTemp.ForOriginalInput(switchGoverningExpression); 171var rootIdentifier = BoundDagTemp.ForOriginalInput(switchExpressionInput); 186BoundDagTemp input, 196BoundDagTemp input, 217BoundDagTemp temp = binding.TempContainingValue; 269BoundDagTemp input, 282BoundDagTemp input, 284out BoundDagTemp output, 319BoundDagTemp input, 321out BoundDagTemp output, 337var valueAsITuple = new BoundDagTemp(syntax, iTupleType, valueAsITupleEvaluation); 342var lengthTemp = new BoundDagTemp(syntax, this._compilation.GetSpecialType(SpecialType.System_Int32), lengthEvaluation); 345var getItemPropertyInput = OriginalInput(valueAsITuple, getItemProperty); 350var indexTemp = new BoundDagTemp(syntax, objectType, indexEvaluation); 363private BoundDagTemp OriginalInput(BoundDagTemp input, Symbol symbol) 379private static BoundDagTemp OriginalInput(BoundDagTemp input) 392BoundDagTemp input, 394out BoundDagTemp output, 420BoundDagTemp input, 422out BoundDagTemp output) 431BoundDagTemp input, 448private BoundDagTemp MakeConvertToType( 449BoundDagTemp input, 483BoundDagTemp input, 485out BoundDagTemp output) 517BoundDagTemp input, 519out BoundDagTemp output, 541var element = new BoundDagTemp(syntax, method.Parameters[i + extensionExtra].Type, evaluation, i); 565var element = new BoundDagTemp(syntax, field.Type, evaluation); 584BoundDagTemp currentInput = input; 605bool tryMakeTestsForSubpatternMember([NotNullWhen(true)] BoundPropertySubpatternMember? member, ref BoundDagTemp input, bool isLengthOrCount) 636private Tests MakeTestsAndBindingsForNegatedPattern(BoundDagTemp input, BoundNegatedPattern neg, ArrayBuilder<BoundPatternBinding> bindings) 643BoundDagTemp input, 645out BoundDagTemp output, 669builder.Add(MakeTestsAndBindings(input, bin.Left, out var leftOutput, bindings)); 670builder.Add(MakeTestsAndBindings(leftOutput, bin.Right, out var rightOutput, bindings)); 678BoundDagTemp input, 680out BoundDagTemp output) 802DagState uniquifyState(FrozenArrayBuilder<StateForCase> cases, ImmutableDictionary<BoundDagTemp, IValueSet> remainingValues) 815var newRemainingValues = ImmutableDictionary.CreateBuilder<BoundDagTemp, IValueSet>(); 861ImmutableDictionary<BoundDagTemp, IValueSet>.Empty); 1062out ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1064out ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1099ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1100ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1104ImmutableDictionary<BoundDagTemp, IValueSet> values, 1123ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1124ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1129var input = test.Input; 1149private static (BoundDagTemp? lengthTemp, int offset) TryGetTopLevelLengthTemp(BoundDagPropertyEvaluation e) 1153BoundDagTemp input = e.Input; 1154BoundDagTemp? lengthTemp = null; 1165private static (BoundDagTemp input, BoundDagTemp lengthTemp, int index) GetCanonicalInput(BoundDagIndexerEvaluation e) 1168BoundDagTemp input = e.Input; 1169BoundDagTemp lengthTemp = e.LengthTemp; 1410BoundDagTemp s1Input = OriginalInput(test.Input); 1411BoundDagTemp s2Input = OriginalInput(other.Input); 1442(s1Input, BoundDagTemp s1LengthTemp, int s1Index) = GetCanonicalInput(s1); 1443(s2Input, BoundDagTemp s2LengthTemp, int s2Index) = GetCanonicalInput(s2); 1644string tempName(BoundDagTemp t) 1826/// A <see cref="BoundDagTemp"/> absent from this dictionary means that all values of the type are possible. 1828public ImmutableDictionary<BoundDagTemp, IValueSet> RemainingValues { get; private set; } = null!; 1857public static DagState GetInstance(FrozenArrayBuilder<StateForCase> cases, ImmutableDictionary<BoundDagTemp, IValueSet> remainingValues) 1901internal void UpdateRemainingValues(ImmutableDictionary<BoundDagTemp, IValueSet> newRemainingValues) 2206if (TryGetTopLevelLengthTemp(e) is (BoundDagTemp lengthTemp, int offset))
Binder\DecisionDagBuilder_ListPatterns.cs (5)
13private Tests MakeTestsAndBindingsForListPattern(BoundDagTemp input, BoundListPattern list, out BoundDagTemp output, ArrayBuilder<BoundPatternBinding> bindings) 43var lengthTemp = new BoundDagTemp(syntax, _compilation.GetSpecialType(SpecialType.System_Int32), lengthEvaluation); 67var sliceTemp = new BoundDagTemp(slicePattern.Syntax, slicePattern.InputType, sliceEvaluation); 82var indexTemp = new BoundDagTemp(subpattern.Syntax, subpattern.InputType, indexEvaluation);
Binder\PatternExplainer.cs (22)
180BoundDagTemp rootIdentifier, 210static string samplePatternFromOtherPaths(BoundDagTemp rootIdentifier, BoundDecisionDagNode rootNode, 245out Dictionary<BoundDagTemp, ArrayBuilder<(BoundDagTest, bool)>> constraints, 246out Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluations) 248constraints = new Dictionary<BoundDagTemp, ArrayBuilder<(BoundDagTest, bool)>>(); 249evaluations = new Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>>(); 260BoundDagTemp temp = test.Input; 278BoundDagTemp temp = e.Evaluation.Input; 292BoundDagTemp input, 293Dictionary<BoundDagTemp, ArrayBuilder<(BoundDagTest test, bool sense)>> constraintMap, 294Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluationMap, 311static ImmutableArray<T> getArray<T>(Dictionary<BoundDagTemp, ArrayBuilder<T>> map, BoundDagTemp temp) 344var typedTemp = new BoundDagTemp(te.Syntax, te.Type, te); 359var typedTemp = new BoundDagTemp(te.Syntax, te.Type, te); 403var lengthTemp = new BoundDagTemp(lengthOrCount.Syntax, lengthOrCount.Property.Type, lengthOrCount); 431var indexerTemp = new BoundDagTemp(e.Syntax, e.IndexerType, e); 450var sliceTemp = new BoundDagTemp(slice.Syntax, slice.SliceType, slice); 479var elementTemp = new BoundDagTemp(e.Syntax, e.Field.Type, e); 547var elementTemp = new BoundDagTemp(e.Syntax, method.Parameters[j + extensionExtra].Type, e, j); 566var subInput = new BoundDagTemp(e.Syntax, e.Field.Type, e); 573var subInput = new BoundDagTemp(e.Syntax, e.Property.Type, e);
Binder\SwitchExpressionBinder.cs (1)
96BoundDagTemp.ForOriginalInput(boundInputExpression), nodes, n, nullPaths: false, out bool requiresFalseWhenClause, out bool unnamedEnumValue);
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) 36public bool IsEquivalentTo(BoundDagTemp other)
BoundTree\BoundPatternBinding.cs (2)
15public readonly BoundDagTemp TempContainingValue; 16public BoundPatternBinding(BoundExpression variableAccess, BoundDagTemp tempContainingValue)
BoundTree\Constructors.cs (1)
708public static BoundDagTemp ForOriginalInput(BoundExpression expr) => new BoundDagTemp(expr.Syntax, expr.Type!, source: null);
FlowAnalysis\NullableWalker_Patterns.cs (14)
347var rootTemp = BoundDagTemp.ForOriginalInput(expression); 371var tempMap = PooledDictionary<BoundDagTemp, (int slot, TypeSymbol type)>.GetInstance(); 414var output = new BoundDagTemp(e.Syntax, parameterType.Type, e, i); 423var output = new BoundDagTemp(e.Syntax, e.Type, e); 452var output = new BoundDagTemp(e.Syntax, type.Type, e); 498var output = new BoundDagTemp(e.Syntax, type.Type, e); 523var output = new BoundDagTemp(e.Syntax, type.Type, e); 535var output = new BoundDagTemp(e.Syntax, type.Type, e); 637var tempSource = binding.TempContainingValue; 702void addToTempMap(BoundDagTemp output, int slot, TypeSymbol type) 793int makeDagTempSlot(TypeWithAnnotations type, BoundDagTemp temp) 802var output = new BoundDagTemp(e.Syntax, type.Type, e, index: index); 865BoundDagTemp.ForOriginalInput(node.Expression), nodes, leaf, nullPaths: true, out bool requiresFalseWhenClause, out _);
Generated\BoundNodes.xml.Generated.cs (94)
5183protected BoundDagTest(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5192public BoundDagTemp Input { get; } 5215public BoundDagTemp Update(TypeSymbol type, BoundDagEvaluation? source, int index) 5219var result = new BoundDagTemp(this.Syntax, type, source, index, this.HasErrors); 5229public BoundDagTypeTest(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5244public BoundDagTypeTest Update(TypeSymbol type, BoundDagTemp input) 5258public BoundDagNonNullTest(SyntaxNode syntax, bool isExplicitTest, BoundDagTemp input, bool hasErrors = false) 5272public BoundDagNonNullTest Update(bool isExplicitTest, BoundDagTemp input) 5286public BoundDagExplicitNullTest(SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5298public BoundDagExplicitNullTest Update(BoundDagTemp input) 5312public BoundDagValueTest(SyntaxNode syntax, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5327public BoundDagValueTest Update(ConstantValue value, BoundDagTemp input) 5341public BoundDagRelationalTest(SyntaxNode syntax, BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5358public BoundDagRelationalTest Update(BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input) 5372protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5384public BoundDagDeconstructEvaluation(SyntaxNode syntax, MethodSymbol deconstructMethod, BoundDagTemp input, bool hasErrors = false) 5399public BoundDagDeconstructEvaluation Update(MethodSymbol deconstructMethod, BoundDagTemp input) 5413public BoundDagTypeEvaluation(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5428public BoundDagTypeEvaluation Update(TypeSymbol type, BoundDagTemp input) 5442public BoundDagFieldEvaluation(SyntaxNode syntax, FieldSymbol field, BoundDagTemp input, bool hasErrors = false) 5457public BoundDagFieldEvaluation Update(FieldSymbol field, BoundDagTemp input) 5471public BoundDagPropertyEvaluation(SyntaxNode syntax, PropertySymbol property, bool isLengthOrCount, BoundDagTemp input, bool hasErrors = false) 5488public BoundDagPropertyEvaluation Update(PropertySymbol property, bool isLengthOrCount, BoundDagTemp input) 5502public BoundDagIndexEvaluation(SyntaxNode syntax, PropertySymbol property, int index, BoundDagTemp input, bool hasErrors = false) 5519public BoundDagIndexEvaluation Update(PropertySymbol property, int index, BoundDagTemp input) 5533public BoundDagIndexerEvaluation(SyntaxNode syntax, TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5557public BoundDagTemp LengthTemp { get; } 5566public BoundDagIndexerEvaluation Update(TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input) 5580public BoundDagSliceEvaluation(SyntaxNode syntax, TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5605public BoundDagTemp LengthTemp { get; } 5615public BoundDagSliceEvaluation Update(TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input) 5629public BoundDagAssignmentEvaluation(SyntaxNode syntax, BoundDagTemp target, BoundDagTemp input, bool hasErrors = false) 5639public BoundDagTemp Target { get; } 5644public BoundDagAssignmentEvaluation Update(BoundDagTemp target, BoundDagTemp input) 9101return VisitDagTemp((BoundDagTemp)node, arg); 9437public virtual R VisitDagTemp(BoundDagTemp node, A arg) => this.DefaultVisit(node, arg); 9673public virtual BoundNode? VisitDagTemp(BoundDagTemp node) => this.DefaultVisit(node); 10307public override BoundNode? VisitDagTemp(BoundDagTemp node) 11567public override BoundNode? VisitDagTemp(BoundDagTemp node) 11575BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11581BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11586BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11591BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11596BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11601BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11606BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11612BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11617BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11622BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11627BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 11631BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11637BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 11641BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11647BoundDagTemp target = (BoundDagTemp)this.Visit(node.Target); 11648BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13674BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13681BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13688BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13695BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13702BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 13706BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13713BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 13717BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 16136public 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 (17)
56private readonly PooledDictionary<BoundDagTemp, BoundExpression> _map = PooledDictionary<BoundDagTemp, BoundExpression>.GetInstance(); 94public BoundExpression GetTemp(BoundDagTemp dagTemp) 115public bool TrySetTemp(BoundDagTemp dagTemp, BoundExpression translation) 143var outputTemp = new BoundDagTemp(f.Syntax, field.Type, f); 153var outputTemp = new BoundDagTemp(p.Syntax, property.Type, p); 189var outputTemp = new BoundDagTemp(d.Syntax, parameter.Type, d, i - extensionExtra); 208var outputTemp = new BoundDagTemp(t.Syntax, type, t); 245var outputTemp = new BoundDagTemp(e.Syntax, type, e); 270var outputTemp = new BoundDagTemp(e.Syntax, e.IndexerType, e); 296var outputTemp = new BoundDagTemp(e.Syntax, e.SliceType, e); 518var inputDagTemp = BoundDagTemp.ForOriginalInput(loweredInput); 619var originalInput = BoundDagTemp.ForOriginalInput(loweredInput.Syntax, loweredInput.Type); 627var temp = new BoundDagTemp(expr.Syntax, expr.Type, fieldFetchEvaluation); 640void storeToTemp(BoundDagTemp temp, BoundExpression expr)
Utilities\ValueSetFactory.cs (1)
64public static IValueSetFactory? ForInput(BoundDagTemp input)