36 instantiations of BoundDagTemp
Microsoft.CodeAnalysis.CSharp (36)
Binder\DecisionDagBuilder.cs (5)
337
var valueAsITuple = new
BoundDagTemp
(syntax, iTupleType, valueAsITupleEvaluation);
475
input = new
BoundDagTemp
(syntax, type, evaluation);
541
var element = new
BoundDagTemp
(syntax, method.Parameters[i + extensionExtra].Type, evaluation, i);
565
var element = new
BoundDagTemp
(syntax, field.Type, evaluation);
631
input = new
BoundDagTemp
(member.Syntax, member.Type, evaluation);
Binder\DecisionDagBuilder_ListPatterns.cs (2)
67
var sliceTemp = new
BoundDagTemp
(slicePattern.Syntax, slicePattern.InputType, sliceEvaluation);
82
var indexTemp = new
BoundDagTemp
(subpattern.Syntax, subpattern.InputType, indexEvaluation);
Binder\PatternExplainer.cs (9)
344
var typedTemp = new
BoundDagTemp
(te.Syntax, te.Type, te);
359
var typedTemp = new
BoundDagTemp
(te.Syntax, te.Type, te);
403
var lengthTemp = new
BoundDagTemp
(lengthOrCount.Syntax, lengthOrCount.Property.Type, lengthOrCount);
431
var indexerTemp = new
BoundDagTemp
(e.Syntax, e.IndexerType, e);
450
var sliceTemp = new
BoundDagTemp
(slice.Syntax, slice.SliceType, slice);
479
var elementTemp = new
BoundDagTemp
(e.Syntax, e.Field.Type, e);
547
var elementTemp = new
BoundDagTemp
(e.Syntax, method.Parameters[j + extensionExtra].Type, e, j);
566
var subInput = new
BoundDagTemp
(e.Syntax, e.Field.Type, e);
573
var subInput = new
BoundDagTemp
(e.Syntax, e.Property.Type, e);
BoundTree\BoundDagTemp.cs (1)
21
public static BoundDagTemp ForOriginalInput(SyntaxNode syntax, TypeSymbol type) => new
BoundDagTemp
(syntax, type, source: null, 0);
BoundTree\Constructors.cs (1)
708
public static BoundDagTemp ForOriginalInput(BoundExpression expr) => new
BoundDagTemp
(expr.Syntax, expr.Type!, source: null);
FlowAnalysis\NullableWalker_Patterns.cs (7)
414
var output = new
BoundDagTemp
(e.Syntax, parameterType.Type, e, i);
423
var output = new
BoundDagTemp
(e.Syntax, e.Type, e);
452
var output = new
BoundDagTemp
(e.Syntax, type.Type, e);
498
var output = new
BoundDagTemp
(e.Syntax, type.Type, e);
523
var output = new
BoundDagTemp
(e.Syntax, type.Type, e);
535
var output = new
BoundDagTemp
(e.Syntax, type.Type, e);
802
var output = new
BoundDagTemp
(e.Syntax, type.Type, e, index: index);
Generated\BoundNodes.xml.Generated.cs (1)
5219
var result = new
BoundDagTemp
(this.Syntax, type, source, index, this.HasErrors);
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (10)
143
var outputTemp = new
BoundDagTemp
(f.Syntax, field.Type, f);
153
var outputTemp = new
BoundDagTemp
(p.Syntax, property.Type, p);
189
var outputTemp = new
BoundDagTemp
(d.Syntax, parameter.Type, d, i - extensionExtra);
208
var outputTemp = new
BoundDagTemp
(t.Syntax, type, t);
245
var outputTemp = new
BoundDagTemp
(e.Syntax, type, e);
270
var outputTemp = new
BoundDagTemp
(e.Syntax, e.IndexerType, e);
296
var outputTemp = new
BoundDagTemp
(e.Syntax, e.SliceType, e);
474
BoundExpression output = _tempAllocator.GetTemp(new
BoundDagTemp
(evaluation.Syntax, typeEvaluation1.Type, evaluation));
490
BoundExpression output = _tempAllocator.GetTemp(new
BoundDagTemp
(evaluation.Syntax, baseType, evaluation));
627
var temp = new
BoundDagTemp
(expr.Syntax, expr.Type, fieldFetchEvaluation);
237 references to BoundDagTemp
Microsoft.CodeAnalysis.CSharp (237)
Binder\DecisionDagBuilder.cs (72)
133
var
rootIdentifier =
BoundDagTemp
.ForOriginalInput(inputExpression);
146
var
rootIdentifier =
BoundDagTemp
.ForOriginalInput(switchGoverningExpression);
171
var
rootIdentifier =
BoundDagTemp
.ForOriginalInput(switchExpressionInput);
186
BoundDagTemp
input,
196
BoundDagTemp
input,
217
BoundDagTemp
temp = binding.TempContainingValue;
269
BoundDagTemp
input,
282
BoundDagTemp
input,
284
out
BoundDagTemp
output,
319
BoundDagTemp
input,
321
out
BoundDagTemp
output,
337
var
valueAsITuple = new BoundDagTemp(syntax, iTupleType, valueAsITupleEvaluation);
342
var
lengthTemp = new BoundDagTemp(syntax, this._compilation.GetSpecialType(SpecialType.System_Int32), lengthEvaluation);
345
var
getItemPropertyInput = OriginalInput(valueAsITuple, getItemProperty);
350
var
indexTemp = new BoundDagTemp(syntax, objectType, indexEvaluation);
363
private
BoundDagTemp
OriginalInput(
BoundDagTemp
input, Symbol symbol)
379
private static
BoundDagTemp
OriginalInput(
BoundDagTemp
input)
392
BoundDagTemp
input,
394
out
BoundDagTemp
output,
420
BoundDagTemp
input,
422
out
BoundDagTemp
output)
431
BoundDagTemp
input,
448
private
BoundDagTemp
MakeConvertToType(
449
BoundDagTemp
input,
483
BoundDagTemp
input,
485
out
BoundDagTemp
output)
517
BoundDagTemp
input,
519
out
BoundDagTemp
output,
541
var
element = new BoundDagTemp(syntax, method.Parameters[i + extensionExtra].Type, evaluation, i);
565
var
element = new BoundDagTemp(syntax, field.Type, evaluation);
584
BoundDagTemp
currentInput = input;
605
bool tryMakeTestsForSubpatternMember([NotNullWhen(true)] BoundPropertySubpatternMember? member, ref
BoundDagTemp
input, bool isLengthOrCount)
636
private Tests MakeTestsAndBindingsForNegatedPattern(
BoundDagTemp
input, BoundNegatedPattern neg, ArrayBuilder<BoundPatternBinding> bindings)
643
BoundDagTemp
input,
645
out
BoundDagTemp
output,
669
builder.Add(MakeTestsAndBindings(input, bin.Left, out
var
leftOutput, bindings));
670
builder.Add(MakeTestsAndBindings(leftOutput, bin.Right, out
var
rightOutput, bindings));
678
BoundDagTemp
input,
680
out
BoundDagTemp
output)
802
DagState uniquifyState(FrozenArrayBuilder<StateForCase> cases, ImmutableDictionary<
BoundDagTemp
, IValueSet> remainingValues)
815
var newRemainingValues = ImmutableDictionary.CreateBuilder<
BoundDagTemp
, IValueSet>();
861
ImmutableDictionary<
BoundDagTemp
, IValueSet>.Empty);
1062
out ImmutableDictionary<
BoundDagTemp
, IValueSet> whenTrueValues,
1064
out ImmutableDictionary<
BoundDagTemp
, IValueSet> whenFalseValues,
1099
ImmutableDictionary<
BoundDagTemp
, IValueSet> whenTrueValues,
1100
ImmutableDictionary<
BoundDagTemp
, IValueSet> whenFalseValues,
1104
ImmutableDictionary<
BoundDagTemp
, IValueSet> values,
1123
ImmutableDictionary<
BoundDagTemp
, IValueSet> whenTrueValues,
1124
ImmutableDictionary<
BoundDagTemp
, IValueSet> whenFalseValues,
1129
var
input = test.Input;
1149
private static (
BoundDagTemp
? lengthTemp, int offset) TryGetTopLevelLengthTemp(BoundDagPropertyEvaluation e)
1153
BoundDagTemp
input = e.Input;
1154
BoundDagTemp
? lengthTemp = null;
1165
private static (
BoundDagTemp
input,
BoundDagTemp
lengthTemp, int index) GetCanonicalInput(BoundDagIndexerEvaluation e)
1168
BoundDagTemp
input = e.Input;
1169
BoundDagTemp
lengthTemp = e.LengthTemp;
1410
BoundDagTemp
s1Input = OriginalInput(test.Input);
1411
BoundDagTemp
s2Input = OriginalInput(other.Input);
1442
(s1Input,
BoundDagTemp
s1LengthTemp, int s1Index) = GetCanonicalInput(s1);
1443
(s2Input,
BoundDagTemp
s2LengthTemp, int s2Index) = GetCanonicalInput(s2);
1644
string tempName(
BoundDagTemp
t)
1826
/// A <see cref="
BoundDagTemp
"/> absent from this dictionary means that all values of the type are possible.
1828
public ImmutableDictionary<
BoundDagTemp
, IValueSet> RemainingValues { get; private set; } = null!;
1857
public static DagState GetInstance(FrozenArrayBuilder<StateForCase> cases, ImmutableDictionary<
BoundDagTemp
, IValueSet> remainingValues)
1901
internal void UpdateRemainingValues(ImmutableDictionary<
BoundDagTemp
, IValueSet> newRemainingValues)
2206
if (TryGetTopLevelLengthTemp(e) is (
BoundDagTemp
lengthTemp, int offset))
Binder\DecisionDagBuilder_ListPatterns.cs (5)
13
private Tests MakeTestsAndBindingsForListPattern(
BoundDagTemp
input, BoundListPattern list, out
BoundDagTemp
output, ArrayBuilder<BoundPatternBinding> bindings)
43
var
lengthTemp = new BoundDagTemp(syntax, _compilation.GetSpecialType(SpecialType.System_Int32), lengthEvaluation);
67
var
sliceTemp = new BoundDagTemp(slicePattern.Syntax, slicePattern.InputType, sliceEvaluation);
82
var
indexTemp = new BoundDagTemp(subpattern.Syntax, subpattern.InputType, indexEvaluation);
Binder\PatternExplainer.cs (22)
180
BoundDagTemp
rootIdentifier,
210
static string samplePatternFromOtherPaths(
BoundDagTemp
rootIdentifier, BoundDecisionDagNode rootNode,
245
out Dictionary<
BoundDagTemp
, ArrayBuilder<(BoundDagTest, bool)>> constraints,
246
out Dictionary<
BoundDagTemp
, ArrayBuilder<BoundDagEvaluation>> evaluations)
248
constraints = new Dictionary<
BoundDagTemp
, ArrayBuilder<(BoundDagTest, bool)>>();
249
evaluations = new Dictionary<
BoundDagTemp
, ArrayBuilder<BoundDagEvaluation>>();
260
BoundDagTemp
temp = test.Input;
278
BoundDagTemp
temp = e.Evaluation.Input;
292
BoundDagTemp
input,
293
Dictionary<
BoundDagTemp
, ArrayBuilder<(BoundDagTest test, bool sense)>> constraintMap,
294
Dictionary<
BoundDagTemp
, ArrayBuilder<BoundDagEvaluation>> evaluationMap,
311
static ImmutableArray<T> getArray<T>(Dictionary<
BoundDagTemp
, ArrayBuilder<T>> map,
BoundDagTemp
temp)
344
var
typedTemp = new BoundDagTemp(te.Syntax, te.Type, te);
359
var
typedTemp = new BoundDagTemp(te.Syntax, te.Type, te);
403
var
lengthTemp = new BoundDagTemp(lengthOrCount.Syntax, lengthOrCount.Property.Type, lengthOrCount);
431
var
indexerTemp = new BoundDagTemp(e.Syntax, e.IndexerType, e);
450
var
sliceTemp = new BoundDagTemp(slice.Syntax, slice.SliceType, slice);
479
var
elementTemp = new BoundDagTemp(e.Syntax, e.Field.Type, e);
547
var
elementTemp = new BoundDagTemp(e.Syntax, method.Parameters[j + extensionExtra].Type, e, j);
566
var
subInput = new BoundDagTemp(e.Syntax, e.Field.Type, e);
573
var
subInput = new BoundDagTemp(e.Syntax, e.Property.Type, e);
Binder\SwitchExpressionBinder.cs (1)
96
BoundDagTemp
.ForOriginalInput(boundInputExpression), nodes, n, nullPaths: false, out bool requiresFalseWhenClause, out bool unnamedEnumValue);
BoundTree\BoundDagTemp.cs (4)
21
public static
BoundDagTemp
ForOriginalInput(SyntaxNode syntax, TypeSymbol type) => new BoundDagTemp(syntax, type, source: null, 0);
23
public override bool Equals(object? obj) => obj is
BoundDagTemp
other && this.Equals(other);
25
public bool Equals(
BoundDagTemp
other)
36
public bool IsEquivalentTo(
BoundDagTemp
other)
BoundTree\BoundPatternBinding.cs (2)
15
public readonly
BoundDagTemp
TempContainingValue;
16
public BoundPatternBinding(BoundExpression variableAccess,
BoundDagTemp
tempContainingValue)
BoundTree\Constructors.cs (1)
708
public static
BoundDagTemp
ForOriginalInput(BoundExpression expr) => new BoundDagTemp(expr.Syntax, expr.Type!, source: null);
FlowAnalysis\NullableWalker_Patterns.cs (14)
347
var
rootTemp =
BoundDagTemp
.ForOriginalInput(expression);
371
var tempMap = PooledDictionary<
BoundDagTemp
, (int slot, TypeSymbol type)>.GetInstance();
414
var
output = new BoundDagTemp(e.Syntax, parameterType.Type, e, i);
423
var
output = new BoundDagTemp(e.Syntax, e.Type, e);
452
var
output = new BoundDagTemp(e.Syntax, type.Type, e);
498
var
output = new BoundDagTemp(e.Syntax, type.Type, e);
523
var
output = new BoundDagTemp(e.Syntax, type.Type, e);
535
var
output = new BoundDagTemp(e.Syntax, type.Type, e);
637
var
tempSource = binding.TempContainingValue;
702
void addToTempMap(
BoundDagTemp
output, int slot, TypeSymbol type)
793
int makeDagTempSlot(TypeWithAnnotations type,
BoundDagTemp
temp)
802
var
output = new BoundDagTemp(e.Syntax, type.Type, e, index: index);
865
BoundDagTemp
.ForOriginalInput(node.Expression), nodes, leaf, nullPaths: true, out bool requiresFalseWhenClause, out _);
Generated\BoundNodes.xml.Generated.cs (94)
5183
protected BoundDagTest(BoundKind kind, SyntaxNode syntax,
BoundDagTemp
input, bool hasErrors = false)
5192
public
BoundDagTemp
Input { get; }
5215
public
BoundDagTemp
Update(TypeSymbol type, BoundDagEvaluation? source, int index)
5219
var
result = new BoundDagTemp(this.Syntax, type, source, index, this.HasErrors);
5229
public BoundDagTypeTest(SyntaxNode syntax, TypeSymbol type,
BoundDagTemp
input, bool hasErrors = false)
5244
public BoundDagTypeTest Update(TypeSymbol type,
BoundDagTemp
input)
5258
public BoundDagNonNullTest(SyntaxNode syntax, bool isExplicitTest,
BoundDagTemp
input, bool hasErrors = false)
5272
public BoundDagNonNullTest Update(bool isExplicitTest,
BoundDagTemp
input)
5286
public BoundDagExplicitNullTest(SyntaxNode syntax,
BoundDagTemp
input, bool hasErrors = false)
5298
public BoundDagExplicitNullTest Update(
BoundDagTemp
input)
5312
public BoundDagValueTest(SyntaxNode syntax, ConstantValue value,
BoundDagTemp
input, bool hasErrors = false)
5327
public BoundDagValueTest Update(ConstantValue value,
BoundDagTemp
input)
5341
public BoundDagRelationalTest(SyntaxNode syntax, BinaryOperatorKind operatorKind, ConstantValue value,
BoundDagTemp
input, bool hasErrors = false)
5358
public BoundDagRelationalTest Update(BinaryOperatorKind operatorKind, ConstantValue value,
BoundDagTemp
input)
5372
protected BoundDagEvaluation(BoundKind kind, SyntaxNode syntax,
BoundDagTemp
input, bool hasErrors = false)
5384
public BoundDagDeconstructEvaluation(SyntaxNode syntax, MethodSymbol deconstructMethod,
BoundDagTemp
input, bool hasErrors = false)
5399
public BoundDagDeconstructEvaluation Update(MethodSymbol deconstructMethod,
BoundDagTemp
input)
5413
public BoundDagTypeEvaluation(SyntaxNode syntax, TypeSymbol type,
BoundDagTemp
input, bool hasErrors = false)
5428
public BoundDagTypeEvaluation Update(TypeSymbol type,
BoundDagTemp
input)
5442
public BoundDagFieldEvaluation(SyntaxNode syntax, FieldSymbol field,
BoundDagTemp
input, bool hasErrors = false)
5457
public BoundDagFieldEvaluation Update(FieldSymbol field,
BoundDagTemp
input)
5471
public BoundDagPropertyEvaluation(SyntaxNode syntax, PropertySymbol property, bool isLengthOrCount,
BoundDagTemp
input, bool hasErrors = false)
5488
public BoundDagPropertyEvaluation Update(PropertySymbol property, bool isLengthOrCount,
BoundDagTemp
input)
5502
public BoundDagIndexEvaluation(SyntaxNode syntax, PropertySymbol property, int index,
BoundDagTemp
input, bool hasErrors = false)
5519
public BoundDagIndexEvaluation Update(PropertySymbol property, int index,
BoundDagTemp
input)
5533
public BoundDagIndexerEvaluation(SyntaxNode syntax, TypeSymbol indexerType,
BoundDagTemp
lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder,
BoundDagTemp
input, bool hasErrors = false)
5557
public
BoundDagTemp
LengthTemp { get; }
5566
public BoundDagIndexerEvaluation Update(TypeSymbol indexerType,
BoundDagTemp
lengthTemp, int index, BoundExpression indexerAccess, BoundListPatternReceiverPlaceholder receiverPlaceholder, BoundListPatternIndexPlaceholder argumentPlaceholder,
BoundDagTemp
input)
5580
public BoundDagSliceEvaluation(SyntaxNode syntax, TypeSymbol sliceType,
BoundDagTemp
lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder,
BoundDagTemp
input, bool hasErrors = false)
5605
public
BoundDagTemp
LengthTemp { get; }
5615
public BoundDagSliceEvaluation Update(TypeSymbol sliceType,
BoundDagTemp
lengthTemp, int startIndex, int endIndex, BoundExpression indexerAccess, BoundSlicePatternReceiverPlaceholder receiverPlaceholder, BoundSlicePatternRangePlaceholder argumentPlaceholder,
BoundDagTemp
input)
5629
public BoundDagAssignmentEvaluation(SyntaxNode syntax,
BoundDagTemp
target,
BoundDagTemp
input, bool hasErrors = false)
5639
public
BoundDagTemp
Target { get; }
5644
public BoundDagAssignmentEvaluation Update(
BoundDagTemp
target,
BoundDagTemp
input)
9101
return VisitDagTemp((
BoundDagTemp
)node, arg);
9437
public virtual R VisitDagTemp(
BoundDagTemp
node, A arg) => this.DefaultVisit(node, arg);
9673
public virtual BoundNode? VisitDagTemp(
BoundDagTemp
node) => this.DefaultVisit(node);
10307
public override BoundNode? VisitDagTemp(
BoundDagTemp
node)
11567
public override BoundNode? VisitDagTemp(
BoundDagTemp
node)
11575
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
11581
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
11586
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
11591
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
11596
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
11601
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
11606
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
11612
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
11617
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
11622
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
11627
BoundDagTemp
lengthTemp = (
BoundDagTemp
)this.Visit(node.LengthTemp);
11631
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
11637
BoundDagTemp
lengthTemp = (
BoundDagTemp
)this.Visit(node.LengthTemp);
11641
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
11647
BoundDagTemp
target = (
BoundDagTemp
)this.Visit(node.Target);
11648
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
13674
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
13681
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
13688
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
13695
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
13702
BoundDagTemp
lengthTemp = (
BoundDagTemp
)this.Visit(node.LengthTemp);
13706
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
13713
BoundDagTemp
lengthTemp = (
BoundDagTemp
)this.Visit(node.LengthTemp);
13717
BoundDagTemp
input = (
BoundDagTemp
)this.Visit(node.Input);
16136
public override TreeDumperNode VisitDagTemp(
BoundDagTemp
node, object? arg) => new TreeDumperNode("dagTemp", null, new TreeDumperNode[]
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (4)
360
BoundExpression inputTemp = _tempAllocator.GetTemp(
BoundDagTemp
.ForOriginalInput(loweredSwitchGoverningExpression));
504
var
input = ((BoundTestDecisionDagNode)node).Test.Input;
552
BoundDagTemp
input)
561
BoundDagTemp
input,
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (17)
56
private readonly PooledDictionary<
BoundDagTemp
, BoundExpression> _map = PooledDictionary<
BoundDagTemp
, BoundExpression>.GetInstance();
94
public BoundExpression GetTemp(
BoundDagTemp
dagTemp)
115
public bool TrySetTemp(
BoundDagTemp
dagTemp, BoundExpression translation)
143
var
outputTemp = new BoundDagTemp(f.Syntax, field.Type, f);
153
var
outputTemp = new BoundDagTemp(p.Syntax, property.Type, p);
189
var
outputTemp = new BoundDagTemp(d.Syntax, parameter.Type, d, i - extensionExtra);
208
var
outputTemp = new BoundDagTemp(t.Syntax, type, t);
245
var
outputTemp = new BoundDagTemp(e.Syntax, type, e);
270
var
outputTemp = new BoundDagTemp(e.Syntax, e.IndexerType, e);
296
var
outputTemp = new BoundDagTemp(e.Syntax, e.SliceType, e);
518
var
inputDagTemp =
BoundDagTemp
.ForOriginalInput(loweredInput);
619
var
originalInput =
BoundDagTemp
.ForOriginalInput(loweredInput.Syntax, loweredInput.Type);
627
var
temp = new BoundDagTemp(expr.Syntax, expr.Type, fieldFetchEvaluation);
640
void storeToTemp(
BoundDagTemp
temp, BoundExpression expr)
Utilities\ValueSetFactory.cs (1)
64
public static IValueSetFactory? ForInput(
BoundDagTemp
input)