40 instantiations of BoundDagTemp
Microsoft.CodeAnalysis.CSharp (40)
Binder\DecisionDagBuilder.cs (8)
383var valueAsITuple = new BoundDagTemp(syntax, iTupleType, valueAsITupleEvaluation); 388var lengthTemp = new BoundDagTemp(syntax, this._compilation.GetSpecialType(SpecialType.System_Int32), lengthEvaluation); 396var indexTemp = new BoundDagTemp(syntax, objectType, indexEvaluation); 521input = new BoundDagTemp(syntax, type, evaluation); 587var element = new BoundDagTemp(syntax, method.Parameters[i + extensionExtra].Type, evaluation, i); 611var element = new BoundDagTemp(syntax, field.Type, evaluation); 677input = new BoundDagTemp(member.Syntax, member.Type, evaluation); 735output = new BoundDagTemp(bin.Syntax, bin.NarrowedType, evaluation);
Binder\DecisionDagBuilder_ListPatterns.cs (3)
44var lengthTemp = new BoundDagTemp(syntax, _compilation.GetSpecialType(SpecialType.System_Int32), lengthEvaluation); 68var sliceTemp = new BoundDagTemp(slicePattern.Syntax, slicePattern.InputType, sliceEvaluation); 83var indexTemp = new BoundDagTemp(subpattern.Syntax, subpattern.InputType, indexEvaluation);
Binder\PatternExplainer.cs (9)
384var typedTemp = new BoundDagTemp(te.Syntax, te.Type, te); 399var typedTemp = new BoundDagTemp(te.Syntax, te.Type, te); 443var lengthTemp = new BoundDagTemp(lengthOrCount.Syntax, lengthOrCount.Property.Type, lengthOrCount); 471var indexerTemp = new BoundDagTemp(e.Syntax, e.IndexerType, e); 490var sliceTemp = new BoundDagTemp(slice.Syntax, slice.SliceType, slice); 519var elementTemp = new BoundDagTemp(e.Syntax, e.Field.Type, e); 587var elementTemp = new BoundDagTemp(e.Syntax, method.Parameters[j + extensionExtra].Type, e, j); 606var subInput = new BoundDagTemp(e.Syntax, e.Field.Type, e); 613var 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)
649public static BoundDagTemp ForOriginalInput(BoundExpression expr) => new BoundDagTemp(expr.Syntax, expr.Type!, source: null);
FlowAnalysis\NullableWalker_Patterns.cs (7)
452var output = new BoundDagTemp(e.Syntax, parameterType.Type, e, i); 461var output = new BoundDagTemp(e.Syntax, e.Type, e); 490var output = new BoundDagTemp(e.Syntax, type.Type, e); 538var output = new BoundDagTemp(e.Syntax, type.Type, e); 563var output = new BoundDagTemp(e.Syntax, type.Type, e); 575var output = new BoundDagTemp(e.Syntax, type.Type, e); 842var output = new BoundDagTemp(e.Syntax, type.Type, e, index: index);
Generated\BoundNodes.xml.Generated.cs (1)
5274var 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); 192var outputTemp = new BoundDagTemp(d.Syntax, parameter.Type, d, i - extensionExtra); 214var outputTemp = new BoundDagTemp(t.Syntax, type, t); 252var outputTemp = new BoundDagTemp(e.Syntax, type, e); 277var outputTemp = new BoundDagTemp(e.Syntax, e.IndexerType, e); 303var outputTemp = new BoundDagTemp(e.Syntax, e.SliceType, e); 487BoundExpression output = _tempAllocator.GetTemp(new BoundDagTemp(evaluation.Syntax, typeEvaluation1.Type, evaluation)); 503BoundExpression output = _tempAllocator.GetTemp(new BoundDagTemp(evaluation.Syntax, baseType, evaluation)); 640var temp = new BoundDagTemp(expr.Syntax, expr.Type, fieldFetchEvaluation);
248 references to BoundDagTemp
Microsoft.CodeAnalysis.CSharp (248)
Binder\DecisionDagBuilder.cs (74)
133var rootIdentifier = BoundDagTemp.ForOriginalInput(inputExpression); 146var rootIdentifier = BoundDagTemp.ForOriginalInput(switchGoverningExpression); 171var rootIdentifier = BoundDagTemp.ForOriginalInput(switchExpressionInput); 186BoundDagTemp input, 196BoundDagTemp input, 217BoundDagTemp temp = binding.TempContainingValue; 315BoundDagTemp input, 328BoundDagTemp input, 330out BoundDagTemp output, 365BoundDagTemp input, 367out BoundDagTemp output, 383var valueAsITuple = new BoundDagTemp(syntax, iTupleType, valueAsITupleEvaluation); 388var lengthTemp = new BoundDagTemp(syntax, this._compilation.GetSpecialType(SpecialType.System_Int32), lengthEvaluation); 391var getItemPropertyInput = OriginalInput(valueAsITuple, getItemProperty); 396var indexTemp = new BoundDagTemp(syntax, objectType, indexEvaluation); 409private BoundDagTemp OriginalInput(BoundDagTemp input, Symbol symbol) 425private static BoundDagTemp OriginalInput(BoundDagTemp input) 438BoundDagTemp input, 440out BoundDagTemp output, 466BoundDagTemp input, 468out BoundDagTemp output) 477BoundDagTemp input, 494private BoundDagTemp MakeConvertToType( 495BoundDagTemp input, 529BoundDagTemp input, 531out BoundDagTemp output) 563BoundDagTemp input, 565out BoundDagTemp output, 587var element = new BoundDagTemp(syntax, method.Parameters[i + extensionExtra].Type, evaluation, i); 611var element = new BoundDagTemp(syntax, field.Type, evaluation); 630BoundDagTemp currentInput = input; 651bool tryMakeTestsForSubpatternMember([NotNullWhen(true)] BoundPropertySubpatternMember? member, ref BoundDagTemp input, bool isLengthOrCount) 682private Tests MakeTestsAndBindingsForNegatedPattern(BoundDagTemp input, BoundNegatedPattern neg, ArrayBuilder<BoundPatternBinding> bindings) 689BoundDagTemp input, 691out BoundDagTemp output, 717static Tests makeTestsAndBindingsForBinaryPattern(DecisionDagBuilder @this, Tests leftTests, BoundDagTemp leftOutput, BoundDagTemp input, BoundBinaryPattern bin, out BoundDagTemp output, ArrayBuilder<BoundPatternBinding> bindings) 743builder.Add(@this.MakeTestsAndBindings(leftOutput, bin.Right, out var rightOutput, bindings)); 752BoundDagTemp input, 754out BoundDagTemp output) 876DagState uniquifyState(FrozenArrayBuilder<StateForCase> cases, ImmutableDictionary<BoundDagTemp, IValueSet> remainingValues) 889var newRemainingValues = ImmutableDictionary.CreateBuilder<BoundDagTemp, IValueSet>(); 935ImmutableDictionary<BoundDagTemp, IValueSet>.Empty); 1136out ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1138out ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1173ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1174ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1178ImmutableDictionary<BoundDagTemp, IValueSet> values, 1197ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1198ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1203var input = test.Input; 1223private static (BoundDagTemp? lengthTemp, int offset) TryGetTopLevelLengthTemp(BoundDagPropertyEvaluation e) 1227BoundDagTemp input = e.Input; 1228BoundDagTemp? lengthTemp = null; 1239private static (BoundDagTemp input, BoundDagTemp lengthTemp, int index) GetCanonicalInput(BoundDagIndexerEvaluation e) 1242BoundDagTemp input = e.Input; 1243BoundDagTemp lengthTemp = e.LengthTemp; 1484BoundDagTemp s1Input = OriginalInput(test.Input); 1485BoundDagTemp s2Input = OriginalInput(other.Input); 1516(s1Input, BoundDagTemp s1LengthTemp, int s1Index) = GetCanonicalInput(s1); 1517(s2Input, BoundDagTemp s2LengthTemp, int s2Index) = GetCanonicalInput(s2); 1714string tempName(BoundDagTemp t) 1896/// A <see cref="BoundDagTemp"/> absent from this dictionary means that all values of the type are possible. 1898public ImmutableDictionary<BoundDagTemp, IValueSet> RemainingValues { get; private set; } = null!; 1927public static DagState GetInstance(FrozenArrayBuilder<StateForCase> cases, ImmutableDictionary<BoundDagTemp, IValueSet> remainingValues) 1971internal void UpdateRemainingValues(ImmutableDictionary<BoundDagTemp, IValueSet> newRemainingValues) 2276if (TryGetTopLevelLengthTemp(e) is (BoundDagTemp lengthTemp, int offset))
Binder\DecisionDagBuilder_CheckOrReachability.cs (9)
74BoundDagTemp rootIdentifier = BoundDagTemp.ForOriginalInput(inputExpression); 120BoundDagTemp rootIdentifier = BoundDagTemp.ForOriginalInput(inputExpression); 170BoundDagTemp rootIdentifier = BoundDagTemp.ForOriginalInput(inputExpression); 296public readonly BoundDagTemp RootIdentifier; 303DecisionDagBuilder builder, BoundDagTemp rootIdentifier, SyntaxNode syntax, PooledHashSet<SyntaxNode> redundantNodes) 340BoundDagTemp rootIdentifier,
Binder\DecisionDagBuilder_ListPatterns.cs (5)
14private Tests MakeTestsAndBindingsForListPattern(BoundDagTemp input, BoundListPattern list, out BoundDagTemp output, ArrayBuilder<BoundPatternBinding> bindings) 44var lengthTemp = new BoundDagTemp(syntax, _compilation.GetSpecialType(SpecialType.System_Int32), lengthEvaluation); 68var sliceTemp = new BoundDagTemp(slicePattern.Syntax, slicePattern.InputType, sliceEvaluation); 83var indexTemp = new BoundDagTemp(subpattern.Syntax, subpattern.InputType, indexEvaluation);
Binder\PatternExplainer.cs (22)
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, 351static ImmutableArray<T> getArray<T>(Dictionary<BoundDagTemp, ArrayBuilder<T>> map, BoundDagTemp temp) 384var typedTemp = new BoundDagTemp(te.Syntax, te.Type, te); 399var typedTemp = new BoundDagTemp(te.Syntax, te.Type, te); 443var lengthTemp = new BoundDagTemp(lengthOrCount.Syntax, lengthOrCount.Property.Type, lengthOrCount); 471var indexerTemp = new BoundDagTemp(e.Syntax, e.IndexerType, e); 490var sliceTemp = new BoundDagTemp(slice.Syntax, slice.SliceType, slice); 519var elementTemp = new BoundDagTemp(e.Syntax, e.Field.Type, e); 587var elementTemp = new BoundDagTemp(e.Syntax, method.Parameters[j + extensionExtra].Type, e, j); 606var subInput = new BoundDagTemp(e.Syntax, e.Field.Type, e); 613var subInput = new BoundDagTemp(e.Syntax, e.Property.Type, e);
Binder\SwitchExpressionBinder.cs (1)
106BoundDagTemp.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)
649public static BoundDagTemp ForOriginalInput(BoundExpression expr) => new BoundDagTemp(expr.Syntax, expr.Type!, source: null);
FlowAnalysis\NullableWalker_Patterns.cs (14)
385var rootTemp = BoundDagTemp.ForOriginalInput(expression); 409var tempMap = PooledDictionary<BoundDagTemp, (int slot, TypeSymbol type)>.GetInstance(); 452var output = new BoundDagTemp(e.Syntax, parameterType.Type, e, i); 461var output = new BoundDagTemp(e.Syntax, e.Type, e); 490var output = new BoundDagTemp(e.Syntax, type.Type, e); 538var output = new BoundDagTemp(e.Syntax, type.Type, e); 563var output = new BoundDagTemp(e.Syntax, type.Type, e); 575var output = new BoundDagTemp(e.Syntax, type.Type, e); 677var tempSource = binding.TempContainingValue; 742void addToTempMap(BoundDagTemp output, int slot, TypeSymbol type) 833int makeDagTempSlot(TypeWithAnnotations type, BoundDagTemp temp) 842var output = new BoundDagTemp(e.Syntax, type.Type, e, index: index); 905BoundDagTemp.ForOriginalInput(node.Expression), nodes, leaf, nullPaths: true, out bool requiresFalseWhenClause, out _);
Generated\BoundNodes.xml.Generated.cs (94)
5238protected BoundDagTest(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5247public BoundDagTemp Input { get; } 5270public BoundDagTemp Update(TypeSymbol type, BoundDagEvaluation? source, int index) 5274var result = new BoundDagTemp(this.Syntax, type, source, index, this.HasErrors); 5284public BoundDagTypeTest(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5299public BoundDagTypeTest Update(TypeSymbol type, BoundDagTemp input) 5313public BoundDagNonNullTest(SyntaxNode syntax, bool isExplicitTest, BoundDagTemp input, bool hasErrors = false) 5327public BoundDagNonNullTest Update(bool isExplicitTest, BoundDagTemp input) 5341public BoundDagExplicitNullTest(SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5353public BoundDagExplicitNullTest Update(BoundDagTemp input) 5367public BoundDagValueTest(SyntaxNode syntax, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5382public BoundDagValueTest Update(ConstantValue value, BoundDagTemp input) 5396public BoundDagRelationalTest(SyntaxNode syntax, BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5413public BoundDagRelationalTest Update(BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input) 5427protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5439public BoundDagDeconstructEvaluation(SyntaxNode syntax, MethodSymbol deconstructMethod, BoundDagTemp input, bool hasErrors = false) 5454public BoundDagDeconstructEvaluation Update(MethodSymbol deconstructMethod, BoundDagTemp input) 5468public BoundDagTypeEvaluation(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5483public BoundDagTypeEvaluation Update(TypeSymbol type, BoundDagTemp input) 5497public BoundDagFieldEvaluation(SyntaxNode syntax, FieldSymbol field, BoundDagTemp input, bool hasErrors = false) 5512public BoundDagFieldEvaluation Update(FieldSymbol field, BoundDagTemp input) 5526public BoundDagPropertyEvaluation(SyntaxNode syntax, PropertySymbol property, bool isLengthOrCount, BoundDagTemp input, bool hasErrors = false) 5543public BoundDagPropertyEvaluation Update(PropertySymbol property, bool isLengthOrCount, BoundDagTemp input) 5557public BoundDagIndexEvaluation(SyntaxNode syntax, PropertySymbol property, int index, BoundDagTemp input, bool hasErrors = false) 5574public BoundDagIndexEvaluation Update(PropertySymbol property, int index, BoundDagTemp input) 5588public BoundDagIndexerEvaluation(SyntaxNode syntax, TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5612public BoundDagTemp LengthTemp { get; } 5621public BoundDagIndexerEvaluation Update(TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input) 5635public BoundDagSliceEvaluation(SyntaxNode syntax, TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5660public BoundDagTemp LengthTemp { get; } 5670public BoundDagSliceEvaluation Update(TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input) 5684public BoundDagAssignmentEvaluation(SyntaxNode syntax, BoundDagTemp target, BoundDagTemp input, bool hasErrors = false) 5694public BoundDagTemp Target { get; } 5699public BoundDagAssignmentEvaluation Update(BoundDagTemp target, BoundDagTemp input) 9246return VisitDagTemp((BoundDagTemp)node, arg); 9585public virtual R VisitDagTemp(BoundDagTemp node, A arg) => this.DefaultVisit(node, arg); 9823public virtual BoundNode? VisitDagTemp(BoundDagTemp node) => this.DefaultVisit(node); 10460public override BoundNode? VisitDagTemp(BoundDagTemp node) 11830public override BoundNode? VisitDagTemp(BoundDagTemp node) 11838BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11844BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11849BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11854BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11859BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11865BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11870BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11877BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11883BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11889BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11894BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 11898BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11904BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 11908BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11914BoundDagTemp target = (BoundDagTemp)this.Visit(node.Target); 11915BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13997BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 14004BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 14011BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 14018BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 14025BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 14029BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 14036BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 14040BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 16460public 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); 192var outputTemp = new BoundDagTemp(d.Syntax, parameter.Type, d, i - extensionExtra); 214var outputTemp = new BoundDagTemp(t.Syntax, type, t); 252var outputTemp = new BoundDagTemp(e.Syntax, type, e); 277var outputTemp = new BoundDagTemp(e.Syntax, e.IndexerType, e); 303var outputTemp = new BoundDagTemp(e.Syntax, e.SliceType, e); 531var inputDagTemp = BoundDagTemp.ForOriginalInput(loweredInput); 632var originalInput = BoundDagTemp.ForOriginalInput(loweredInput.Syntax, loweredInput.Type); 640var temp = new BoundDagTemp(expr.Syntax, expr.Type, fieldFetchEvaluation); 653void storeToTemp(BoundDagTemp temp, BoundExpression expr)
Utilities\ValueSetFactory.cs (1)
64public static IValueSetFactory? ForInput(BoundDagTemp input)