2 writes to NarrowedType
Microsoft.CodeAnalysis.CSharp (2)
Generated\BoundNodes.xml.Generated.cs (2)
8120
this.
NarrowedType
= narrowedType;
8135
this.
NarrowedType
= narrowedType;
141 references to NarrowedType
Microsoft.CodeAnalysis.CSharp (141)
Binder\Binder_Patterns.cs (4)
2167
Debug.Assert(currentUnionType is null || subPattern.
NarrowedType
.IsObjectType());
2285
var right = binder.BindPattern(node.Right, ref unionType, preboundLeft.
NarrowedType
, ref permitDesignations, hasErrors, diagnostics, out bool rightHasUnionMatching, underIsPattern: false);
2288
var result = new BoundBinaryPattern(node, disjunction: isDisjunction, preboundLeft, right, inputType: inputType, narrowedType: right.
NarrowedType
, hasErrors);
2357
var candidate = pat.
NarrowedType
;
Binder\DecisionDagBuilder_CheckOrReachability.cs (21)
558
var wrappedPattern = new BoundBinaryPattern(newPattern.Syntax, disjunction: false, current.Left, newPattern, current.InputType, newPattern.
NarrowedType
);
832
inputType = stack.Peek().
NarrowedType
;
850
if (resultRight.
NarrowedType
.Equals(resultLeft.
NarrowedType
, TypeCompareKind.AllIgnoreOptions))
852
return resultLeft.
NarrowedType
;
859
narrowedType = resultRight.
NarrowedType
;
1058
return typePattern1.Update(typePattern1.DeclaredType, typePattern1.IsExplicitNotNullTest, unionMatchingMode: UnionMatchingMode.None, inputType, typePattern1.
NarrowedType
);
1069
inputType, recursivePattern.
NarrowedType
);
1086
var narrowedType = constantPattern.ConstantValue.IsNull ? inputType : constantPattern.
NarrowedType
;
1092
return relationalPattern.Update(relationalPattern.Relation, relationalPattern.Value, relationalPattern.ConstantValue, unionMatchingMode: UnionMatchingMode.None, inputType, relationalPattern.
NarrowedType
);
1099
variable: null, variableAccess: null, inputType, declarationPattern.
NarrowedType
);
1110
var result = new BoundBinaryPattern(pattern.Syntax, disjunction: false, left: typePattern, right: pattern, inputType, pattern.
NarrowedType
);
1122
var result = new BoundDeclarationPattern(node.Syntax, node.DeclaredType, node.IsVar, unionMatchingMode: UnionMatchingMode.None, node.Variable, node.VariableAccess, node.InputType, node.
NarrowedType
)
1162
initialCheck = new BoundTypePattern(node.Syntax, node.DeclaredType, node.IsExplicitNotNullTest, unionMatchingMode: UnionMatchingMode.None, node.InputType, node.
NarrowedType
, node.HasErrors);
1202
node.InputType, node.
NarrowedType
, node.HasErrors);
1237
node.InputType, node.
NarrowedType
, node.HasErrors);
1305
ituplePattern.InputType, ituplePattern.
NarrowedType
);
1322
ituplePattern.GetItemMethod, newSubpatterns, ituplePattern.InputType, ituplePattern.
NarrowedType
);
1387
listPattern.InputType, listPattern.
NarrowedType
);
1411
slice.ReceiverPlaceholder, slice.ArgumentPlaceholder, slice.InputType, slice.
NarrowedType
);
1418
listPattern.InputType, listPattern.
NarrowedType
);
Binder\DecisionDagBuilder_ListPatterns.cs (2)
20
inputType.StrippedType().Equals(list.
NarrowedType
, TypeCompareKind.ConsiderEverything) &&
27
inputInfo = MakeConvertToType(inputInfo, list.Syntax, list.
NarrowedType
, isExplicitTest: false, tests);
Binder\DecisionDagBuilder.cs (4)
1148
if (bin.InputType.Equals(bin.
NarrowedType
))
1159
var evaluation = new BoundDagTypeEvaluation(bin.Syntax, bin.
NarrowedType
, input);
1172
outputInfo.DagTemp.Type.Equals(bin.
NarrowedType
, TypeCompareKind.AllIgnoreOptions) :
1173
bin.
NarrowedType
.SpecialType == SpecialType.System_Object));
Binder\UnionMatchingRewriter.cs (16)
90
Debug.Assert(node.
NarrowedType
.Equals(node.InputType, TypeCompareKind.AllIgnoreOptions));
109
node.Update(node.Value, node.ConstantValue, unionMatchingMode: UnionMatchingMode.None, inputType: ObjectType, narrowedType: node.
NarrowedType
));
124
unionMatchingMode: UnionMatchingMode.None, node.Variable, node.VariableAccess, inputType: node.InputType, narrowedType: node.
NarrowedType
),
127
inputType: ObjectType, narrowedType: node.
NarrowedType
));
143
TypeSymbol? narrowedType = node.
NarrowedType
;
158
inputType: node.InputType, narrowedType: node.
NarrowedType
),
160
inputType: ObjectType, narrowedType: node.
NarrowedType
));
176
node.Update(node.DeclaredType, node.IsExplicitNotNullTest, unionMatchingMode: UnionMatchingMode.None, inputType: node.InputType, narrowedType: node.
NarrowedType
),
177
exclusiveValuePattern: node.Update(node.DeclaredType, node.IsExplicitNotNullTest, unionMatchingMode: UnionMatchingMode.None, inputType: ObjectType, narrowedType: node.
NarrowedType
));
191
node.Update(node.Relation, node.Value, node.ConstantValue, unionMatchingMode: UnionMatchingMode.None, inputType: ObjectType, narrowedType: node.
NarrowedType
));
201
return node.Update(negated, node.InputType, node.
NarrowedType
);
211
TypeSymbol? narrowedType = node.
NarrowedType
;
300
Debug.Assert(node.
NarrowedType
.Equals(leastSpecific ?? node.InputType, TypeCompareKind.ConsiderEverything));
303
return node.Update(disjunction: true, preboundLeft, right, inputType: node.InputType, narrowedType: node.
NarrowedType
);
314
narrowedTypeCandidates.Add(result is BoundPatternWithUnionMatching unionResult ? getDisjunctionType(unionResult) : result.
NarrowedType
);
434
return new BoundBinaryPattern(node, disjunction: false, left, right, inputType: left.InputType, narrowedType: right.
NarrowedType
) { WasCompilerGenerated = makeCompilerGenerated };
BoundTree\BoundBinaryPattern.cs (3)
25
Debug.Assert(Right.InputType.Equals(Left.
NarrowedType
, TypeCompareKind.AllIgnoreOptions));
26
Debug.Assert(
NarrowedType
.Equals(Right.
NarrowedType
, TypeCompareKind.AllIgnoreOptions));
BoundTree\BoundConstantPattern.cs (5)
16
Debug.Assert(
NarrowedType
.IsObjectType() ||
17
NarrowedType
.Equals(Value.Type, TypeCompareKind.AllIgnoreOptions) ||
18
(ConstantValue == ConstantValue.Null && (InputType.IsNullableType() || !InputType.IsValueType) &&
NarrowedType
.Equals(InputType, TypeCompareKind.AllIgnoreOptions)));
22
Debug.Assert(
NarrowedType
.Equals(InputType, TypeCompareKind.AllIgnoreOptions) ||
23
NarrowedType
.Equals(Value.Type, TypeCompareKind.AllIgnoreOptions));
BoundTree\BoundDeclarationPattern.cs (1)
14
Debug.Assert(
NarrowedType
.Equals(DeclaredType.Type, TypeCompareKind.AllIgnoreOptions));
BoundTree\BoundDiscardPattern.cs (1)
13
Debug.Assert(
NarrowedType
.Equals(InputType, TypeCompareKind.AllIgnoreOptions));
BoundTree\BoundITuplePattern.cs (2)
15
Debug.Assert(
NarrowedType
.IsCompilerServicesTopLevelType() &&
NarrowedType
.Name == "ITuple");
BoundTree\BoundListPattern.cs (2)
16
return Update(subpatterns, this.HasSlice, this.LengthAccess, this.IndexerAccess, this.ReceiverPlaceholder, this.ArgumentPlaceholder, this.Variable, this.VariableAccess, this.InputType, this.
NarrowedType
);
26
Debug.Assert(
NarrowedType
.Equals(InputType.StrippedType(), TypeCompareKind.AllIgnoreOptions));
BoundTree\BoundNegatedPattern.cs (1)
14
Debug.Assert(
NarrowedType
.Equals(InputType, TypeCompareKind.AllIgnoreOptions));
BoundTree\BoundPatternWithUnionMatching.cs (7)
16
Debug.Assert(UnionMatchingInputType == (object)(LeftOfPendingConjunction?.
NarrowedType
?? InputType));
17
Debug.Assert(
NarrowedType
== (object)(SharedRightOfPendingConjunction ?? ExclusiveValuePattern).
NarrowedType
);
38
Debug.Assert(SharedRightOfPendingConjunction is not null ||
NarrowedType
.Equals(ExclusiveInstancePattern.
NarrowedType
, TypeCompareKind.ConsiderEverything));
50
narrowedType: (sharedRightOfPendingConjunction ?? exclusiveValuePattern).
NarrowedType
)
61
narrowedType: (sharedRightOfPendingConjunction ?? exclusiveValuePattern).
NarrowedType
)
BoundTree\BoundRecursivePattern.cs (2)
18
Debug.Assert(
NarrowedType
.Equals(InputType.StrippedType(), TypeCompareKind.AllIgnoreOptions));
22
Debug.Assert(
NarrowedType
.Equals(DeclaredType.Type, TypeCompareKind.AllIgnoreOptions));
BoundTree\BoundRelationalPattern.cs (4)
17
Debug.Assert(
NarrowedType
.IsObjectType() ||
18
NarrowedType
.Equals(Value.Type, TypeCompareKind.AllIgnoreOptions));
22
Debug.Assert(
NarrowedType
.Equals(InputType, TypeCompareKind.AllIgnoreOptions) ||
23
NarrowedType
.Equals(Value.Type, TypeCompareKind.AllIgnoreOptions));
BoundTree\BoundSlicePattern.cs (2)
13
return Update(pattern, this.IndexerAccess, this.ReceiverPlaceholder, this.ArgumentPlaceholder, this.InputType, this.
NarrowedType
);
21
Debug.Assert(
NarrowedType
.Equals(InputType, TypeCompareKind.AllIgnoreOptions));
BoundTree\BoundTreeRewriter.cs (1)
375
left = binary.Update(binary.Disjunction, left, right, VisitType(binary.InputType), VisitType(binary.
NarrowedType
));
BoundTree\BoundTypePattern.cs (1)
13
Debug.Assert(
NarrowedType
.Equals(DeclaredType.Type, TypeCompareKind.AllIgnoreOptions));
BoundTree\NullabilityRewriter.cs (1)
160
TypeSymbol narrowedType = GetUpdatedSymbol(currentBinary, currentBinary.
NarrowedType
);
Compilation\CSharpSemanticModel.cs (2)
2040
pattern.InputType, pattern.
NarrowedType
, nullability: default, convertedNullability: default,
2041
Compilation.Conversions.ClassifyBuiltInConversion(pattern.InputType, pattern.
NarrowedType
, isChecked: false, ref discardedUseSiteInfo));
Generated\BoundNodes.xml.Generated.cs (47)
8171
if (value != this.Value || constantValue != this.ConstantValue || unionMatchingMode != this.UnionMatchingMode || !TypeSymbol.Equals(inputType, this.InputType, TypeCompareKind.ConsiderEverything) || !TypeSymbol.Equals(narrowedType, this.
NarrowedType
, TypeCompareKind.ConsiderEverything))
8217
if (!TypeSymbol.Equals(unionMatchingInputType, this.UnionMatchingInputType, TypeCompareKind.ConsiderEverything) || leftOfPendingConjunction != this.LeftOfPendingConjunction || exclusiveInstancePattern != this.ExclusiveInstancePattern || valueProperty != this.ValueProperty || exclusiveValuePattern != this.ExclusiveValuePattern || sharedRightOfPendingConjunction != this.SharedRightOfPendingConjunction || !TypeSymbol.Equals(inputType, this.InputType, TypeCompareKind.ConsiderEverything) || !TypeSymbol.Equals(narrowedType, this.
NarrowedType
, TypeCompareKind.ConsiderEverything))
8257
if (!TypeSymbol.Equals(inputType, this.InputType, TypeCompareKind.ConsiderEverything) || !TypeSymbol.Equals(narrowedType, this.
NarrowedType
, TypeCompareKind.ConsiderEverything))
8312
if (declaredType != this.DeclaredType || isVar != this.IsVar || unionMatchingMode != this.UnionMatchingMode || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(variable, this.Variable) || variableAccess != this.VariableAccess || !TypeSymbol.Equals(inputType, this.InputType, TypeCompareKind.ConsiderEverything) || !TypeSymbol.Equals(narrowedType, this.
NarrowedType
, TypeCompareKind.ConsiderEverything))
8355
if (declaredType != this.DeclaredType || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(deconstructMethod, this.DeconstructMethod) || deconstruction != this.Deconstruction || properties != this.Properties || isExplicitNotNullTest != this.IsExplicitNotNullTest || unionMatchingMode != this.UnionMatchingMode || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(variable, this.Variable) || variableAccess != this.VariableAccess || !TypeSymbol.Equals(inputType, this.InputType, TypeCompareKind.ConsiderEverything) || !TypeSymbol.Equals(narrowedType, this.
NarrowedType
, TypeCompareKind.ConsiderEverything))
8399
if (subpatterns != this.Subpatterns || hasSlice != this.HasSlice || lengthAccess != this.LengthAccess || indexerAccess != this.IndexerAccess || receiverPlaceholder != this.ReceiverPlaceholder || argumentPlaceholder != this.ArgumentPlaceholder || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(variable, this.Variable) || variableAccess != this.VariableAccess || !TypeSymbol.Equals(inputType, this.InputType, TypeCompareKind.ConsiderEverything) || !TypeSymbol.Equals(narrowedType, this.
NarrowedType
, TypeCompareKind.ConsiderEverything))
8438
if (pattern != this.Pattern || indexerAccess != this.IndexerAccess || receiverPlaceholder != this.ReceiverPlaceholder || argumentPlaceholder != this.ArgumentPlaceholder || !TypeSymbol.Equals(inputType, this.InputType, TypeCompareKind.ConsiderEverything) || !TypeSymbol.Equals(narrowedType, this.
NarrowedType
, TypeCompareKind.ConsiderEverything))
8478
if (!Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(getLengthMethod, this.GetLengthMethod) || !Symbols.SymbolEqualityComparer.ConsiderEverything.Equals(getItemMethod, this.GetItemMethod) || subpatterns != this.Subpatterns || !TypeSymbol.Equals(inputType, this.InputType, TypeCompareKind.ConsiderEverything) || !TypeSymbol.Equals(narrowedType, this.
NarrowedType
, TypeCompareKind.ConsiderEverything))
8624
if (declaredType != this.DeclaredType || isExplicitNotNullTest != this.IsExplicitNotNullTest || unionMatchingMode != this.UnionMatchingMode || !TypeSymbol.Equals(inputType, this.InputType, TypeCompareKind.ConsiderEverything) || !TypeSymbol.Equals(narrowedType, this.
NarrowedType
, TypeCompareKind.ConsiderEverything))
8663
if (disjunction != this.Disjunction || left != this.Left || right != this.Right || !TypeSymbol.Equals(inputType, this.InputType, TypeCompareKind.ConsiderEverything) || !TypeSymbol.Equals(narrowedType, this.
NarrowedType
, TypeCompareKind.ConsiderEverything))
8697
if (negated != this.Negated || !TypeSymbol.Equals(inputType, this.InputType, TypeCompareKind.ConsiderEverything) || !TypeSymbol.Equals(narrowedType, this.
NarrowedType
, TypeCompareKind.ConsiderEverything))
8738
if (relation != this.Relation || value != this.Value || constantValue != this.ConstantValue || unionMatchingMode != this.UnionMatchingMode || !TypeSymbol.Equals(inputType, this.InputType, TypeCompareKind.ConsiderEverything) || !TypeSymbol.Equals(narrowedType, this.
NarrowedType
, TypeCompareKind.ConsiderEverything))
12521
TypeSymbol? narrowedType = this.VisitType(node.
NarrowedType
);
12533
TypeSymbol? narrowedType = this.VisitType(node.
NarrowedType
);
12539
TypeSymbol? narrowedType = this.VisitType(node.
NarrowedType
);
12548
TypeSymbol? narrowedType = this.VisitType(node.
NarrowedType
);
12560
TypeSymbol? narrowedType = this.VisitType(node.
NarrowedType
);
12573
TypeSymbol? narrowedType = this.VisitType(node.
NarrowedType
);
12583
TypeSymbol? narrowedType = this.VisitType(node.
NarrowedType
);
12592
TypeSymbol? narrowedType = this.VisitType(node.
NarrowedType
);
12618
TypeSymbol? narrowedType = this.VisitType(node.
NarrowedType
);
12626
TypeSymbol? narrowedType = this.VisitType(node.
NarrowedType
);
12633
TypeSymbol? narrowedType = this.VisitType(node.
NarrowedType
);
12640
TypeSymbol? narrowedType = this.VisitType(node.
NarrowedType
);
15215
TypeSymbol narrowedType = GetUpdatedSymbol(node, node.
NarrowedType
);
15224
TypeSymbol narrowedType = GetUpdatedSymbol(node, node.
NarrowedType
);
15236
TypeSymbol narrowedType = GetUpdatedSymbol(node, node.
NarrowedType
);
15244
TypeSymbol narrowedType = GetUpdatedSymbol(node, node.
NarrowedType
);
15255
TypeSymbol narrowedType = GetUpdatedSymbol(node, node.
NarrowedType
);
15267
TypeSymbol narrowedType = GetUpdatedSymbol(node, node.
NarrowedType
);
15280
TypeSymbol narrowedType = GetUpdatedSymbol(node, node.
NarrowedType
);
15293
TypeSymbol narrowedType = GetUpdatedSymbol(node, node.
NarrowedType
);
15315
TypeSymbol narrowedType = GetUpdatedSymbol(node, node.
NarrowedType
);
15323
TypeSymbol narrowedType = GetUpdatedSymbol(node, node.
NarrowedType
);
15331
TypeSymbol narrowedType = GetUpdatedSymbol(node, node.
NarrowedType
);
17468
new TreeDumperNode("narrowedType", node.
NarrowedType
, null),
17481
new TreeDumperNode("narrowedType", node.
NarrowedType
, null),
17488
new TreeDumperNode("narrowedType", node.
NarrowedType
, null),
17500
new TreeDumperNode("narrowedType", node.
NarrowedType
, null),
17515
new TreeDumperNode("narrowedType", node.
NarrowedType
, null),
17530
new TreeDumperNode("narrowedType", node.
NarrowedType
, null),
17541
new TreeDumperNode("narrowedType", node.
NarrowedType
, null),
17551
new TreeDumperNode("narrowedType", node.
NarrowedType
, null),
17584
new TreeDumperNode("narrowedType", node.
NarrowedType
, null),
17594
new TreeDumperNode("narrowedType", node.
NarrowedType
, null),
17602
new TreeDumperNode("narrowedType", node.
NarrowedType
, null),
17613
new TreeDumperNode("narrowedType", node.
NarrowedType
, null),
Operations\CSharpOperationFactory.cs (12)
2587
TypeSymbol narrowedType = boundConstantPattern.
NarrowedType
;
2598
TypeSymbol narrowedType = boundRelationalPattern.
NarrowedType
;
2611
ITypeSymbol narrowedType = boundDeclarationPattern.
NarrowedType
.GetPublicSymbol();
2635
boundRecursivePattern.
NarrowedType
.GetPublicSymbol(),
2654
boundITuplePattern.
NarrowedType
.GetPublicSymbol(),
2663
matchedType: boundTypePattern.
NarrowedType
.GetPublicSymbol(),
2665
narrowedType: boundTypePattern.
NarrowedType
.GetPublicSymbol(),
2678
narrowedType: boundNode.
NarrowedType
.GetPublicSymbol(),
2692
narrowedType: boundNode.
NarrowedType
.GetPublicSymbol(),
2703
boundNegatedPattern.
NarrowedType
.GetPublicSymbol(),
2743
boundBinaryPattern.
NarrowedType
.GetPublicSymbol(),
2912
narrowedType: boundNode.
NarrowedType
.GetPublicSymbol(),