40 instantiations of BoundDagTemp
Microsoft.CodeAnalysis.CSharp (40)
Binder\DecisionDagBuilder.cs (8)
337var valueAsITuple = new BoundDagTemp(syntax, iTupleType, valueAsITupleEvaluation); 342var lengthTemp = new BoundDagTemp(syntax, this._compilation.GetSpecialType(SpecialType.System_Int32), lengthEvaluation); 350var indexTemp = new BoundDagTemp(syntax, objectType, indexEvaluation); 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); 689output = 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)
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)
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)
5217var 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);
239 references to BoundDagTemp
Microsoft.CodeAnalysis.CSharp (239)
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; 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, 671static Tests makeTestsAndBindingsForBinaryPattern(DecisionDagBuilder @this, Tests leftTests, BoundDagTemp leftOutput, BoundDagTemp input, BoundBinaryPattern bin, out BoundDagTemp output, ArrayBuilder<BoundPatternBinding> bindings) 697builder.Add(@this.MakeTestsAndBindings(leftOutput, bin.Right, out var rightOutput, bindings)); 706BoundDagTemp input, 708out BoundDagTemp output) 830DagState uniquifyState(FrozenArrayBuilder<StateForCase> cases, ImmutableDictionary<BoundDagTemp, IValueSet> remainingValues) 843var newRemainingValues = ImmutableDictionary.CreateBuilder<BoundDagTemp, IValueSet>(); 889ImmutableDictionary<BoundDagTemp, IValueSet>.Empty); 1090out ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1092out ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1127ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1128ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1132ImmutableDictionary<BoundDagTemp, IValueSet> values, 1151ImmutableDictionary<BoundDagTemp, IValueSet> whenTrueValues, 1152ImmutableDictionary<BoundDagTemp, IValueSet> whenFalseValues, 1157var input = test.Input; 1177private static (BoundDagTemp? lengthTemp, int offset) TryGetTopLevelLengthTemp(BoundDagPropertyEvaluation e) 1181BoundDagTemp input = e.Input; 1182BoundDagTemp? lengthTemp = null; 1193private static (BoundDagTemp input, BoundDagTemp lengthTemp, int index) GetCanonicalInput(BoundDagIndexerEvaluation e) 1196BoundDagTemp input = e.Input; 1197BoundDagTemp lengthTemp = e.LengthTemp; 1438BoundDagTemp s1Input = OriginalInput(test.Input); 1439BoundDagTemp s2Input = OriginalInput(other.Input); 1470(s1Input, BoundDagTemp s1LengthTemp, int s1Index) = GetCanonicalInput(s1); 1471(s2Input, BoundDagTemp s2LengthTemp, int s2Index) = GetCanonicalInput(s2); 1672string tempName(BoundDagTemp t) 1854/// A <see cref="BoundDagTemp"/> absent from this dictionary means that all values of the type are possible. 1856public ImmutableDictionary<BoundDagTemp, IValueSet> RemainingValues { get; private set; } = null!; 1885public static DagState GetInstance(FrozenArrayBuilder<StateForCase> cases, ImmutableDictionary<BoundDagTemp, IValueSet> remainingValues) 1929internal void UpdateRemainingValues(ImmutableDictionary<BoundDagTemp, IValueSet> newRemainingValues) 2234if (TryGetTopLevelLengthTemp(e) is (BoundDagTemp lengthTemp, int offset))
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)
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)
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)
5181protected BoundDagTest(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5190public BoundDagTemp Input { get; } 5213public BoundDagTemp Update(TypeSymbol type, BoundDagEvaluation? source, int index) 5217var result = new BoundDagTemp(this.Syntax, type, source, index, this.HasErrors); 5227public BoundDagTypeTest(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5242public BoundDagTypeTest Update(TypeSymbol type, BoundDagTemp input) 5256public BoundDagNonNullTest(SyntaxNode syntax, bool isExplicitTest, BoundDagTemp input, bool hasErrors = false) 5270public BoundDagNonNullTest Update(bool isExplicitTest, BoundDagTemp input) 5284public BoundDagExplicitNullTest(SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5296public BoundDagExplicitNullTest Update(BoundDagTemp input) 5310public BoundDagValueTest(SyntaxNode syntax, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5325public BoundDagValueTest Update(ConstantValue value, BoundDagTemp input) 5339public BoundDagRelationalTest(SyntaxNode syntax, BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input, bool hasErrors = false) 5356public BoundDagRelationalTest Update(BinaryOperatorKind operatorKind, ConstantValue value, BoundDagTemp input) 5370protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax, BoundDagTemp input, bool hasErrors = false) 5382public BoundDagDeconstructEvaluation(SyntaxNode syntax, MethodSymbol deconstructMethod, BoundDagTemp input, bool hasErrors = false) 5397public BoundDagDeconstructEvaluation Update(MethodSymbol deconstructMethod, BoundDagTemp input) 5411public BoundDagTypeEvaluation(SyntaxNode syntax, TypeSymbol type, BoundDagTemp input, bool hasErrors = false) 5426public BoundDagTypeEvaluation Update(TypeSymbol type, BoundDagTemp input) 5440public BoundDagFieldEvaluation(SyntaxNode syntax, FieldSymbol field, BoundDagTemp input, bool hasErrors = false) 5455public BoundDagFieldEvaluation Update(FieldSymbol field, BoundDagTemp input) 5469public BoundDagPropertyEvaluation(SyntaxNode syntax, PropertySymbol property, bool isLengthOrCount, BoundDagTemp input, bool hasErrors = false) 5486public BoundDagPropertyEvaluation Update(PropertySymbol property, bool isLengthOrCount, BoundDagTemp input) 5500public BoundDagIndexEvaluation(SyntaxNode syntax, PropertySymbol property, int index, BoundDagTemp input, bool hasErrors = false) 5517public BoundDagIndexEvaluation Update(PropertySymbol property, int index, BoundDagTemp input) 5531public BoundDagIndexerEvaluation(SyntaxNode syntax, TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5555public BoundDagTemp LengthTemp { get; } 5564public BoundDagIndexerEvaluation Update(TypeSymbol indexerType, BoundDagTemp lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder, BoundDagTemp input) 5578public BoundDagSliceEvaluation(SyntaxNode syntax, TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input, bool hasErrors = false) 5603public BoundDagTemp LengthTemp { get; } 5613public BoundDagSliceEvaluation Update(TypeSymbol sliceType, BoundDagTemp lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder, BoundDagTemp input) 5627public BoundDagAssignmentEvaluation(SyntaxNode syntax, BoundDagTemp target, BoundDagTemp input, bool hasErrors = false) 5637public BoundDagTemp Target { get; } 5642public BoundDagAssignmentEvaluation Update(BoundDagTemp target, BoundDagTemp input) 9141return VisitDagTemp((BoundDagTemp)node, arg); 9477public virtual R VisitDagTemp(BoundDagTemp node, A arg) => this.DefaultVisit(node, arg); 9713public virtual BoundNode? VisitDagTemp(BoundDagTemp node) => this.DefaultVisit(node); 10348public override BoundNode? VisitDagTemp(BoundDagTemp node) 11705public override BoundNode? VisitDagTemp(BoundDagTemp node) 11713BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11719BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11724BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11729BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11734BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11740BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11745BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11752BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11758BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11764BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11769BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 11773BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11779BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 11783BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 11789BoundDagTemp target = (BoundDagTemp)this.Visit(node.Target); 11790BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13850BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13857BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13864BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13871BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13878BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 13882BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 13889BoundDagTemp lengthTemp = (BoundDagTemp)this.Visit(node.LengthTemp); 13893BoundDagTemp input = (BoundDagTemp)this.Visit(node.Input); 16314public 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)