39 instantiations of BoundDagTemp
Microsoft.CodeAnalysis.CSharp (39)
Binder\DecisionDagBuilder.cs (7)
334var valueAsITuple = new BoundDagTemp(syntax, iTupleType, valueAsITupleEvaluation); 339var lengthTemp = new BoundDagTemp(syntax, this._compilation.GetSpecialType(SpecialType.System_Int32), lengthEvaluation); 347var indexTemp = new BoundDagTemp(syntax, objectType, indexEvaluation); 472input = new BoundDagTemp(syntax, type, evaluation); 538var element = new BoundDagTemp(syntax, method.Parameters[i + extensionExtra].Type, evaluation, i); 562var element = new BoundDagTemp(syntax, field.Type, evaluation); 628input = new BoundDagTemp(member.Syntax, member.Type, evaluation);
Binder\DecisionDagBuilder_ListPatterns.cs (3)
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 (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)
651public 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); 496var output = new BoundDagTemp(e.Syntax, type.Type, e); 521var output = new BoundDagTemp(e.Syntax, type.Type, e); 533var output = new BoundDagTemp(e.Syntax, type.Type, e); 800var output = new BoundDagTemp(e.Syntax, type.Type, e, index: index);
Generated\BoundNodes.xml.Generated.cs (1)
5108var 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);
239 references to BoundDagTemp
Microsoft.CodeAnalysis.CSharp (239)
Binder\DecisionDagBuilder.cs (74)
134var rootIdentifier = BoundDagTemp.ForOriginalInput(inputExpression); 143var rootIdentifier = BoundDagTemp.ForOriginalInput(switchGoverningExpression); 168var rootIdentifier = BoundDagTemp.ForOriginalInput(switchExpressionInput); 183BoundDagTemp input, 193BoundDagTemp input, 214BoundDagTemp temp = binding.TempContainingValue; 266BoundDagTemp input, 279BoundDagTemp input, 281out BoundDagTemp output, 316BoundDagTemp input, 318out BoundDagTemp output, 334var valueAsITuple = new BoundDagTemp(syntax, iTupleType, valueAsITupleEvaluation); 339var lengthTemp = new BoundDagTemp(syntax, this._compilation.GetSpecialType(SpecialType.System_Int32), lengthEvaluation); 342var getItemPropertyInput = OriginalInput(valueAsITuple, getItemProperty); 347var indexTemp = new BoundDagTemp(syntax, objectType, indexEvaluation); 360private BoundDagTemp OriginalInput(BoundDagTemp input, Symbol symbol) 376private static BoundDagTemp OriginalInput(BoundDagTemp input) 389BoundDagTemp input, 391out BoundDagTemp output, 417BoundDagTemp input, 419out BoundDagTemp output) 428BoundDagTemp input, 445private BoundDagTemp MakeConvertToType( 446BoundDagTemp input, 480BoundDagTemp input, 482out BoundDagTemp output) 514BoundDagTemp input, 516out BoundDagTemp output, 538var element = new BoundDagTemp(syntax, method.Parameters[i + extensionExtra].Type, evaluation, i); 562var element = new BoundDagTemp(syntax, field.Type, evaluation); 581BoundDagTemp currentInput = input; 602bool tryMakeTestsForSubpatternMember([NotNullWhen(true)] BoundPropertySubpatternMember? member, ref BoundDagTemp input, bool isLengthOrCount) 633private Tests MakeTestsAndBindingsForNegatedPattern(BoundDagTemp input, BoundNegatedPattern neg, ArrayBuilder<BoundPatternBinding> bindings) 640BoundDagTemp input, 642out BoundDagTemp output, 666builder.Add(MakeTestsAndBindings(input, bin.Left, out var leftOutput, bindings)); 667builder.Add(MakeTestsAndBindings(leftOutput, bin.Right, out var rightOutput, bindings)); 675BoundDagTemp input, 677out BoundDagTemp output) 784DagState uniqifyState(ImmutableArray<StateForCase> cases, ImmutableDictionary<BoundDagTemp, IValueSet> remainingValues) 791var newRemainingValues = ImmutableDictionary.CreateBuilder<BoundDagTemp, IValueSet>(); 835var initialState = uniqifyState(rewrittenCases.ToImmutableAndFree(), ImmutableDictionary<BoundDagTemp, IValueSet>.Empty); 900out ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 901out ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1040out ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1041out ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1076ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1077ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1081ImmutableDictionary<BoundDagTemp, IValueSet> values, 1100ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1101ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1106var input = test.Input; 1126private static (BoundDagTemp? lengthTemp, int offset) TryGetTopLevelLengthTemp(BoundDagPropertyEvaluation e) 1130BoundDagTemp input = e.Input; 1131BoundDagTemp? lengthTemp = null; 1142private static (BoundDagTemp input, BoundDagTemp lengthTemp, int index) GetCanonicalInput(BoundDagIndexerEvaluation e) 1145BoundDagTemp input = e.Input; 1146BoundDagTemp lengthTemp = e.LengthTemp; 1387BoundDagTemp s1Input = OriginalInput(test.Input); 1388BoundDagTemp s2Input = OriginalInput(other.Input); 1419(s1Input, BoundDagTemp s1LengthTemp, int s1Index) = GetCanonicalInput(s1); 1420(s2Input, BoundDagTemp s2LengthTemp, int s2Index) = GetCanonicalInput(s2); 1635string tempName(BoundDagTemp t) 1749/// A <see cref="BoundDagTemp"/> absent from this dictionary means that all values of the type are possible. 1751public ImmutableDictionary<BoundDagTemp, IValueSet> RemainingValues { get; private set; } 1758public DagState(ImmutableArray<StateForCase> cases, ImmutableDictionary<BoundDagTemp, IValueSet> remainingValues) 1787internal void UpdateRemainingValues(ImmutableDictionary<BoundDagTemp, IValueSet> newRemainingValues) 2078if (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)
95BoundDagTemp.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)
651public 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); 496var output = new BoundDagTemp(e.Syntax, type.Type, e); 521var output = new BoundDagTemp(e.Syntax, type.Type, e); 533var output = new BoundDagTemp(e.Syntax, type.Type, e); 635var tempSource = binding.TempContainingValue; 700void addToTempMap(BoundDagTemp output, int slot, TypeSymbol type) 791int makeDagTempSlot(TypeWithAnnotations type, BoundDagTemp temp) 800var output = new BoundDagTemp(e.Syntax, type.Type, e, index: index); 863BoundDagTemp.ForOriginalInput(node.Expression), nodes, leaf, nullPaths: true, out bool requiresFalseWhenClause, out _);
Generated\BoundNodes.xml.Generated.cs (94)
5072protected BoundDagTest(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5081public BoundDagTemp Input { get; } 5104public BoundDagTemp Update(TypeSymbol type, BoundDagEvaluation? source, int index) 5108var result = new BoundDagTemp(this.Syntax, type, source, index, this.HasErrors); 5118public BoundDagTypeTest(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5133public BoundDagTypeTest Update(TypeSymbol type, BoundDagTemp input) 5147public BoundDagNonNullTest(SyntaxNode syntax, bool isExplicitTest, BoundDagTemp input, bool hasErrors = false) 5161public BoundDagNonNullTest Update(bool isExplicitTest, BoundDagTemp input) 5175public BoundDagExplicitNullTest(SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5187public BoundDagExplicitNullTest Update(BoundDagTemp input) 5201public BoundDagValueTest(SyntaxNode syntax, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5216public BoundDagValueTest Update(ConstantValue value, BoundDagTemp input) 5230public BoundDagRelationalTest(SyntaxNode syntax, BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5247public BoundDagRelationalTest Update(BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input) 5261protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5273public BoundDagDeconstructEvaluation(SyntaxNode syntax, MethodSymbol deconstructMethod, BoundDagTemp input, bool hasErrors = false) 5288public BoundDagDeconstructEvaluation Update(MethodSymbol deconstructMethod, BoundDagTemp input) 5302public BoundDagTypeEvaluation(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5317public BoundDagTypeEvaluation Update(TypeSymbol type, BoundDagTemp input) 5331public BoundDagFieldEvaluation(SyntaxNode syntax, FieldSymbol field, BoundDagTemp input, bool hasErrors = false) 5346public BoundDagFieldEvaluation Update(FieldSymbol field, BoundDagTemp input) 5360public BoundDagPropertyEvaluation(SyntaxNode syntax, PropertySymbol property, bool isLengthOrCount, BoundDagTemp input, bool hasErrors = false) 5377public BoundDagPropertyEvaluation Update(PropertySymbol property, bool isLengthOrCount, BoundDagTemp input) 5391public BoundDagIndexEvaluation(SyntaxNode syntax, PropertySymbol property, int index, BoundDagTemp input, bool hasErrors = false) 5408public BoundDagIndexEvaluation Update(PropertySymbol property, int index, BoundDagTemp input) 5422public BoundDagIndexerEvaluation(SyntaxNode syntax, TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5446public BoundDagTemp LengthTemp { get; } 5455public BoundDagIndexerEvaluation Update(TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input) 5469public BoundDagSliceEvaluation(SyntaxNode syntax, TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5494public BoundDagTemp LengthTemp { get; } 5504public BoundDagSliceEvaluation Update(TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input) 5518public BoundDagAssignmentEvaluation(SyntaxNode syntax, BoundDagTemp target, BoundDagTemp input, bool hasErrors = false) 5528public BoundDagTemp Target { get; } 5533public BoundDagAssignmentEvaluation Update(BoundDagTemp target, BoundDagTemp input) 8779return VisitDagTemp((BoundDagTemp)node, arg); 9102public virtual R VisitDagTemp(BoundDagTemp node, A arg) => this.DefaultVisit(node, arg); 9330public virtual BoundNode? VisitDagTemp(BoundDagTemp node) => this.DefaultVisit(node); 9952public override BoundNode? VisitDagTemp(BoundDagTemp node) 11174public override BoundNode? VisitDagTemp(BoundDagTemp node) 11182BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11188BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11193BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11198BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11203BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11208BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11213BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11219BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11224BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11229BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11234BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 11238BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11244BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 11248BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11254BoundDagTemp target = (BoundDagTemp)this.Visit(node.Target); 11255BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13209BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13216BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13223BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13230BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13237BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 13241BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13248BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 13252BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 15578public override TreeDumperNode VisitDagTemp(BoundDagTemp node, object? arg) => new TreeDumperNode("dagTemp", null, new TreeDumperNode[]
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (4)
361BoundExpression inputTemp = _tempAllocator.GetTemp(BoundDagTemp.ForOriginalInput(loweredSwitchGoverningExpression)); 505var input = ((BoundTestDecisionDagNode)node).Test.Input; 553BoundDagTemp input) 562BoundDagTemp 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)