1 write to Type
Microsoft.CodeAnalysis.CSharp (1)
Symbols\TypeWithState.cs (1)
73Type = type;
86 references to Type
Microsoft.CodeAnalysis.CSharp (86)
FlowAnalysis\NullableWalker.cs (74)
115Debug.Assert(TypeSymbol.Equals(RValueType.Type, LValueType.Type, TypeCompareKind.ConsiderEverything)); 372expr.Type?.Equals(result.RValueType.Type, TypeCompareKind.AllIgnoreOptions) == true ? result.RValueType.Type : expr.Type); 505Debug.Assert(AreCloseEnough(placeholder.Type, result.RValueType.Type)); 2236!targetType.Type.Equals(valueType.Type, TypeCompareKind.AllIgnoreOptions)) 2289return valueType.Type?.TypeKind == TypeKind.TypeParameter && 2497target.Type.Equals(assignedValue.Type, TypeCompareKind.AllIgnoreOptions); 3336Debug.Assert((object?)resultType.Type != _invalidType.Type); 3337Debug.Assert(AreCloseEnough(resultType.Type, node.Type)); 3927Debug.Assert(TypeSymbol.Equals(containingType, receiverResult.VisitResult.RValueType.Type, TypeCompareKind.IgnoreNullableModifiersForReferenceTypes)); 3985Debug.Assert(TypeSymbol.Equals(containingType, receiverResult.VisitResult.RValueType.Type, TypeCompareKind.IgnoreNullableModifiersForReferenceTypes)); 4386var type = ResultType.Type as ArrayTypeSymbol; 4654TypeSymbol asMemberOfType = getTypeIfContainingType(methodContainer, leftUnderlyingType.Type, leftOperand) ?? 4655getTypeIfContainingType(methodContainer, rightUnderlyingType.Type, rightOperand) ?? methodContainer; 5154var leftResultType = leftResult.Type; 5155var rightResultType = rightResult.Type; 5208Debug.Assert(conversionResult.Type is not null); 5209return (conversionResult.Type!, conversionResult.State); 5441refResultType = consequenceRValue.Type!.MergeEquivalentTypes(alternativeRValue.Type, VarianceKind.None); 5669var rvalueType = _currentConditionalReceiverVisitResult.RValueType.Type; 5693method = (MethodSymbol)AsMemberOfType(receiverType.Type, method); 5735isWellKnownEqualityMethodOrImplementation(compilation, method, receiverType.Type, WellKnownMember.System_Collections_Generic_IEqualityComparer_T__Equals)) 5746isWellKnownEqualityMethodOrImplementation(compilation, method, receiverType.Type, WellKnownMember.System_IEquatable_T__Equals))) 5966var type = receiverType.Type; 6041return TypeWithState.Create(typeWithState.Type, NullableFlowState.NotNull); 6046return TypeWithState.Create(typeWithState.Type, NullableFlowState.MaybeDefault); 6573var argumentResultType = resultType.Type; 6658hasNoNonNullableCounterpart(valueState.Type) && 6840return TypeWithState.Create(typeWithState.Type, NullableFlowState.MaybeDefault); 6846return TypeWithState.Create(typeWithState.Type, NullableFlowState.NotNull); 6861return TypeWithState.Create(typeWithState.Type, NullableFlowState.MaybeDefault); 6865return TypeWithState.Create(typeWithState.Type, NullableFlowState.NotNull); 6880return TypeWithState.Create(typeWithState.Type, NullableFlowState.MaybeDefault); 6884return TypeWithState.Create(typeWithState.Type, NullableFlowState.NotNull); 7117method = (MethodSymbol)AsMemberOfType(receiverType.Type, method); 7313return TypeWithState.Create(type.Type, state); 8101if (operandType.Type?.IsTupleType == true || conversionOperand.Kind == BoundKind.TupleLiteral) 8112conversion = GenerateConversion(_conversions, conversionOperand, operandType.Type, targetType, fromExplicitCast, extensionMethodThisArgument, isChecked: conversionOpt?.Checked ?? false); 8123if (AreNullableAndUnderlyingTypes(targetType, operandType.Type, out TypeWithAnnotations underlyingType)) 8138conversion = GenerateConversion(_conversions, conversionOperand, operandType.Type, targetType, fromExplicitCast, extensionMethodThisArgument, isChecked: conversionOpt?.Checked ?? false); 8146if (operandType.Type?.IsNullableType() == true && !targetType.IsNullableType()) 8180TrackNullableStateOfTupleConversion(conversionOpt, conversionOperand, conversion, targetType, operandType.Type, slot, valueSlot, assignmentKind, parameterOpt, reportWarnings: reportRemainingWarnings); 8190conversion = GenerateConversion(_conversions, conversionOperand, operandType.Type, targetType, fromExplicitCast, extensionMethodThisArgument, isChecked: conversionOpt?.Checked ?? false); 8223ReportNullabilityMismatchInArgument(diagnosticLocationOpt, operandType.Type, parameterOpt, targetType, forOutput: false); 8227ReportNullabilityMismatchInAssignment(diagnosticLocationOpt, GetTypeAsDiagnosticArgument(operandType.Type), targetType); 8261var type = operandType.Type; 8292var type = operandType.Type; 8484Debug.Assert(operandType.Type is object); 8492if (operandType.Type.IsNullableType() && !parameterType.IsNullableType()) 8494var underlyingOperandTypeWithAnnotations = operandType.Type.GetNullableUnderlyingTypeWithAnnotations(); 8629var type = typeWithState.Type; 8661Debug.Assert(operandType.Type is object); 8664var conversion = _conversions.ClassifyStandardConversion(operandType.Type, targetType.Type, ref discardedUseSiteInfo); 8669ReportNullabilityMismatchInArgument(diagnosticLocation, operandType.Type, parameterOpt, targetType.Type, forOutput: false); 8673ReportNullabilityMismatchInAssignment(diagnosticLocation, operandType.Type, targetType.Type); 8916method = (MethodSymbol)AsMemberOfType(receiverType.Type, method); 9278Debug.Assert(rightResult.Type is object); 9288deconstructMethod = (MethodSymbol)AsMemberOfType(rightResult.Type, deconstructMethod); 9430AreNullableAndUnderlyingTypes(lvalueType.Type, operandType.Type, out TypeWithAnnotations underlyingType)) 9734if (argumentType.Type is { } argType && IsNullabilityMismatch(paramType.Type, argType)) 9819var receiverType = VisitRvalueWithState(receiverOpt).Type; 9883member = AsMemberOfType(receiverType.Type, member); 9897if (PossiblyNullableType(resultType.Type)) 9903resultType = TypeWithState.Create(resultType.Type, state); 9990var resultType = resultTypeWithState.Type; 10094reinferredGetEnumeratorMethod ??= (MethodSymbol)AsMemberOfType(convertedResult.Type, node.EnumeratorInfoOpt.GetEnumeratorInfo.Method); 10105var currentPropertyGetter = (MethodSymbol)AsMemberOfType(enumeratorReturnType.Type, node.EnumeratorInfoOpt.CurrentPropertyGetter); 10343method = (MethodSymbol)AsMemberOfType(operandType.Type!.StrippedType(), method); 10524var reinferredGetResult = _visitResult.RValueType.Type is NamedTypeSymbol taskAwaiterType 10771@event = (EventSymbol)AsMemberOfType(ResultType.Type, @event); 10880var resultTypeSymbol = resultType.Type; 11186Debug.Assert(ResultType is TypeWithState { Type: FunctionPointerTypeSymbol { }, State: NullableFlowState.NotNull });
FlowAnalysis\NullableWalker_Patterns.cs (2)
372Debug.Assert(isDerivedType(NominalSlotType(originalInputSlot), expressionTypeWithState.Type)); 373tempMap.Add(rootTemp, (originalInputSlot, expressionTypeWithState.Type));
Symbols\TypeWithState.cs (10)
18[MemberNotNullWhen(false, nameof(Type))] 19public bool HasNullType => Type is null; 77public string GetDebuggerDisplay() => $"{{Type:{Type?.GetDebuggerDisplay()}, State:{State}{"}"}"; 81public TypeWithState WithNotNullState() => new TypeWithState(Type, NullableFlowState.NotNull); 83public TypeWithState WithSuppression(bool suppress) => suppress ? new TypeWithState(Type, NullableFlowState.NotNull) : this; 87if (Type?.IsTypeParameterDisallowingAnnotationInCSharp8() == true) 89var type = TypeWithAnnotations.Create(Type, NullableAnnotation.NotAnnotated); 93(Type?.IsValueType == true ? NullableAnnotation.NotAnnotated : NullableAnnotation.Annotated) : 94(State.IsNotNull() || Type?.CanContainNull() == false ? NullableAnnotation.NotAnnotated : NullableAnnotation.Annotated); 95return TypeWithAnnotations.Create(this.Type, annotation);