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