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)
644public 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)
5242var 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); 191var outputTemp = new BoundDagTemp(d.Syntax, parameter.Type, d, i - extensionExtra); 212var outputTemp = new BoundDagTemp(t.Syntax, type, t); 249var outputTemp = new BoundDagTemp(e.Syntax, type, e); 274var outputTemp = new BoundDagTemp(e.Syntax, e.IndexerType, e); 300var outputTemp = new BoundDagTemp(e.Syntax, e.SliceType, e); 478BoundExpression output = _tempAllocator.GetTemp(new BoundDagTemp(evaluation.Syntax, typeEvaluation1.Type, evaluation)); 494BoundExpression output = _tempAllocator.GetTemp(new BoundDagTemp(evaluation.Syntax, baseType, evaluation)); 631var 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)
644public 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)
5206protected BoundDagTest(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5215public BoundDagTemp Input { get; } 5238public BoundDagTemp Update(TypeSymbol type, BoundDagEvaluation? source, int index) 5242var result = new BoundDagTemp(this.Syntax, type, source, index, this.HasErrors); 5252public BoundDagTypeTest(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5267public BoundDagTypeTest Update(TypeSymbol type, BoundDagTemp input) 5281public BoundDagNonNullTest(SyntaxNode syntax, bool isExplicitTest, BoundDagTemp input, bool hasErrors = false) 5295public BoundDagNonNullTest Update(bool isExplicitTest, BoundDagTemp input) 5309public BoundDagExplicitNullTest(SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5321public BoundDagExplicitNullTest Update(BoundDagTemp input) 5335public BoundDagValueTest(SyntaxNode syntax, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5350public BoundDagValueTest Update(ConstantValue value, BoundDagTemp input) 5364public BoundDagRelationalTest(SyntaxNode syntax, BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5381public BoundDagRelationalTest Update(BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input) 5395protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5407public BoundDagDeconstructEvaluation(SyntaxNode syntax, MethodSymbol deconstructMethod, BoundDagTemp input, bool hasErrors = false) 5422public BoundDagDeconstructEvaluation Update(MethodSymbol deconstructMethod, BoundDagTemp input) 5436public BoundDagTypeEvaluation(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5451public BoundDagTypeEvaluation Update(TypeSymbol type, BoundDagTemp input) 5465public BoundDagFieldEvaluation(SyntaxNode syntax, FieldSymbol field, BoundDagTemp input, bool hasErrors = false) 5480public BoundDagFieldEvaluation Update(FieldSymbol field, BoundDagTemp input) 5494public BoundDagPropertyEvaluation(SyntaxNode syntax, PropertySymbol property, bool isLengthOrCount, BoundDagTemp input, bool hasErrors = false) 5511public BoundDagPropertyEvaluation Update(PropertySymbol property, bool isLengthOrCount, BoundDagTemp input) 5525public BoundDagIndexEvaluation(SyntaxNode syntax, PropertySymbol property, int index, BoundDagTemp input, bool hasErrors = false) 5542public BoundDagIndexEvaluation Update(PropertySymbol property, int index, BoundDagTemp input) 5556public BoundDagIndexerEvaluation(SyntaxNode syntax, TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5580public BoundDagTemp LengthTemp { get; } 5589public BoundDagIndexerEvaluation Update(TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input) 5603public BoundDagSliceEvaluation(SyntaxNode syntax, TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5628public BoundDagTemp LengthTemp { get; } 5638public BoundDagSliceEvaluation Update(TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input) 5652public BoundDagAssignmentEvaluation(SyntaxNode syntax, BoundDagTemp target, BoundDagTemp input, bool hasErrors = false) 5662public BoundDagTemp Target { get; } 5667public BoundDagAssignmentEvaluation Update(BoundDagTemp target, BoundDagTemp input) 9170return VisitDagTemp((BoundDagTemp)node, arg); 9506public virtual R VisitDagTemp(BoundDagTemp node, A arg) => this.DefaultVisit(node, arg); 9742public virtual BoundNode? VisitDagTemp(BoundDagTemp node) => this.DefaultVisit(node); 10377public override BoundNode? VisitDagTemp(BoundDagTemp node) 11735public override BoundNode? VisitDagTemp(BoundDagTemp node) 11743BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11749BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11754BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11759BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11764BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11770BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11775BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11782BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11788BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11794BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11799BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 11803BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11809BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 11813BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11819BoundDagTemp target = (BoundDagTemp)this.Visit(node.Target); 11820BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13885BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13892BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13899BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13906BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13913BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 13917BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13924BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 13928BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 16340public 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); 191var outputTemp = new BoundDagTemp(d.Syntax, parameter.Type, d, i - extensionExtra); 212var outputTemp = new BoundDagTemp(t.Syntax, type, t); 249var outputTemp = new BoundDagTemp(e.Syntax, type, e); 274var outputTemp = new BoundDagTemp(e.Syntax, e.IndexerType, e); 300var outputTemp = new BoundDagTemp(e.Syntax, e.SliceType, e); 522var inputDagTemp = BoundDagTemp.ForOriginalInput(loweredInput); 623var originalInput = BoundDagTemp.ForOriginalInput(loweredInput.Syntax, loweredInput.Type); 631var temp = new BoundDagTemp(expr.Syntax, expr.Type, fieldFetchEvaluation); 644void storeToTemp(BoundDagTemp temp, BoundExpression expr)
Utilities\ValueSetFactory.cs (1)
64public static IValueSetFactory? ForInput(BoundDagTemp input)