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)
5225var 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)
5189protected BoundDagTest(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5198public BoundDagTemp Input { get; } 5221public BoundDagTemp Update(TypeSymbol type, BoundDagEvaluation? source, int index) 5225var result = new BoundDagTemp(this.Syntax, type, source, index, this.HasErrors); 5235public BoundDagTypeTest(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5250public BoundDagTypeTest Update(TypeSymbol type, BoundDagTemp input) 5264public BoundDagNonNullTest(SyntaxNode syntax, bool isExplicitTest, BoundDagTemp input, bool hasErrors = false) 5278public BoundDagNonNullTest Update(bool isExplicitTest, BoundDagTemp input) 5292public BoundDagExplicitNullTest(SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5304public BoundDagExplicitNullTest Update(BoundDagTemp input) 5318public BoundDagValueTest(SyntaxNode syntax, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5333public BoundDagValueTest Update(ConstantValue value, BoundDagTemp input) 5347public BoundDagRelationalTest(SyntaxNode syntax, BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5364public BoundDagRelationalTest Update(BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input) 5378protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5390public BoundDagDeconstructEvaluation(SyntaxNode syntax, MethodSymbol deconstructMethod, BoundDagTemp input, bool hasErrors = false) 5405public BoundDagDeconstructEvaluation Update(MethodSymbol deconstructMethod, BoundDagTemp input) 5419public BoundDagTypeEvaluation(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5434public BoundDagTypeEvaluation Update(TypeSymbol type, BoundDagTemp input) 5448public BoundDagFieldEvaluation(SyntaxNode syntax, FieldSymbol field, BoundDagTemp input, bool hasErrors = false) 5463public BoundDagFieldEvaluation Update(FieldSymbol field, BoundDagTemp input) 5477public BoundDagPropertyEvaluation(SyntaxNode syntax, PropertySymbol property, bool isLengthOrCount, BoundDagTemp input, bool hasErrors = false) 5494public BoundDagPropertyEvaluation Update(PropertySymbol property, bool isLengthOrCount, BoundDagTemp input) 5508public BoundDagIndexEvaluation(SyntaxNode syntax, PropertySymbol property, int index, BoundDagTemp input, bool hasErrors = false) 5525public BoundDagIndexEvaluation Update(PropertySymbol property, int index, BoundDagTemp input) 5539public BoundDagIndexerEvaluation(SyntaxNode syntax, TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5563public BoundDagTemp LengthTemp { get; } 5572public BoundDagIndexerEvaluation Update(TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input) 5586public BoundDagSliceEvaluation(SyntaxNode syntax, TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5611public BoundDagTemp LengthTemp { get; } 5621public BoundDagSliceEvaluation Update(TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input) 5635public BoundDagAssignmentEvaluation(SyntaxNode syntax, BoundDagTemp target, BoundDagTemp input, bool hasErrors = false) 5645public BoundDagTemp Target { get; } 5650public BoundDagAssignmentEvaluation Update(BoundDagTemp target, BoundDagTemp input) 9149return VisitDagTemp((BoundDagTemp)node, arg); 9485public virtual R VisitDagTemp(BoundDagTemp node, A arg) => this.DefaultVisit(node, arg); 9721public virtual BoundNode? VisitDagTemp(BoundDagTemp node) => this.DefaultVisit(node); 10356public override BoundNode? VisitDagTemp(BoundDagTemp node) 11713public override BoundNode? VisitDagTemp(BoundDagTemp node) 11721BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11727BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11732BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11737BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11742BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11748BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11753BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11760BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11766BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11772BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11777BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 11781BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11787BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 11791BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11797BoundDagTemp target = (BoundDagTemp)this.Visit(node.Target); 11798BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13858BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13865BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13872BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13879BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13886BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 13890BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13897BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 13901BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 16313public 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)