1 write to Type
Microsoft.CodeAnalysis.CSharp (1)
Symbols\TypeWithState.cs (1)
73Type = type;
108 references to Type
Microsoft.CodeAnalysis.CSharp (108)
FlowAnalysis\NullableWalker_Patterns.cs (2)
415Debug.Assert(isDerivedType(NominalSlotType(originalInputSlot), expressionTypeWithState.Type)); 416tempMap.Add(rootTemp, (originalInputSlot, expressionTypeWithState.Type));
FlowAnalysis\NullableWalker.cs (96)
149Debug.Assert(TypeSymbol.Equals(RValueType.Type, LValueType.Type, TypeCompareKind.ConsiderEverything)); 369Debug.Assert(TypeAllowsConditionalState(visitResult.RValueType.Type) 436expr.Type?.Equals(result.RValueType.Type, TypeCompareKind.AllIgnoreOptions) == true ? result.RValueType.Type : expr.Type); 591Debug.Assert(AreCloseEnough(placeholder.Type, result.RValueType.Type)); 2455!targetType.Type.Equals(valueType.Type, TypeCompareKind.AllIgnoreOptions)) 2503return valueType.Type?.TypeKind == TypeKind.TypeParameter && 2711target.Type.Equals(assignedValue.Type, TypeCompareKind.AllIgnoreOptions); 3785Debug.Assert((object?)resultType.Type != _invalidType.Type); 3786Debug.Assert(AreCloseEnough(resultType.Type, node.Type)); 4854Debug.Assert(TypeSymbol.Equals(containingType, receiverResult.RValueType.Type, TypeCompareKind.IgnoreNullableModifiersForReferenceTypes)); 4912Debug.Assert(TypeSymbol.Equals(containingType, receiverResult.RValueType.Type, TypeCompareKind.IgnoreNullableModifiersForReferenceTypes)); 5319var type = ResultType.Type as ArrayTypeSymbol; 5345var expressionType = VisitRvalueWithState(node.Expression).Type; 5696TypeSymbol asMemberOfType = getTypeIfContainingType(methodContainer, leftUnderlyingType.Type, leftOperand) ?? 5697getTypeIfContainingType(methodContainer, rightUnderlyingType.Type, rightOperand) ?? methodContainer; 5715[new BoundExpressionWithNullability(leftOperand.Syntax, leftOperand, leftUnderlyingType.ToTypeWithAnnotations(compilation).NullableAnnotation, leftUnderlyingType.Type), 5716new BoundExpressionWithNullability(rightOperand.Syntax, rightOperand, rightUnderlyingType.ToTypeWithAnnotations(compilation).NullableAnnotation, rightUnderlyingType.Type)], 6158Debug.Assert(TypeSymbol.Equals(targetType.Type, rightResult.Type, TypeCompareKind.AllIgnoreOptions)); 6201var leftResultType = leftResult.Type; 6202var rightResultType = rightResult.Type; 6257Debug.Assert(conversionResult.Type is not null); 6258return (conversionResult.Type!, conversionResult.State); 6507refResultType = consequenceRValue.Type!.MergeEquivalentTypes(alternativeRValue.Type, VarianceKind.None); 6535resultType = alternativeRValue.Type; 6539resultType = consequenceRValue.Type; 6752var rvalueType = _currentConditionalReceiverVisitResult.RValueType.Type; 6981method = (MethodSymbol)AsMemberOfType(receiverType.Type, method); 6990ReinferenceResult<MethodSymbol> reinferenceResult = VisitArgumentsCore(node, receiverType.Type, arguments, refKindsOpt, parameters, argsToParamsOpt, defaultArguments, 7123isWellKnownEqualityMethodOrImplementation(compilation, method, receiverType.Type, WellKnownMember.System_Collections_Generic_IEqualityComparer_T__Equals)) 7134isWellKnownEqualityMethodOrImplementation(compilation, method, receiverType.Type, WellKnownMember.System_IEquatable_T__Equals))) 7352var type = receiverType.Type; 7449return TypeWithState.Create(typeWithState.Type, NullableFlowState.NotNull); 7454return TypeWithState.Create(typeWithState.Type, NullableFlowState.MaybeDefault); 8229var argumentResultType = resultType.Type; 8314hasNoNonNullableCounterpart(valueState.Type) && 8516return TypeWithState.Create(typeWithState.Type, NullableFlowState.MaybeDefault); 8522return TypeWithState.Create(typeWithState.Type, NullableFlowState.NotNull); 8537return TypeWithState.Create(typeWithState.Type, NullableFlowState.MaybeDefault); 8541return TypeWithState.Create(typeWithState.Type, NullableFlowState.NotNull); 8556return TypeWithState.Create(typeWithState.Type, NullableFlowState.MaybeDefault); 8560return TypeWithState.Create(typeWithState.Type, NullableFlowState.NotNull); 8852method = (MethodSymbol)AsMemberOfType(receiverType.Type, method); 9130return TypeWithState.Create(type.Type, state); 9608if (PossiblyNullableType(valueFieldType.Type)) 9613valueFieldType = TypeWithState.Create(valueFieldType.Type, GetState(ref this.State, valueFieldSlot)); 9617var conversionOperand = new BoundValueForNullableAnalysis(convertedNode.Syntax, originalExpression: null, valueFieldType.Type); 10042if (operandType.Type?.IsTupleType == true || conversionOperand.Kind == BoundKind.TupleLiteral) 10054conversion = GenerateConversion(_conversions, conversionOperand, operandType.Type, targetType, fromExplicitCast, extensionMethodThisArgument, isChecked: conversionOpt?.Checked ?? false); 10065if (AreNullableAndUnderlyingTypes(targetType, operandType.Type, out TypeWithAnnotations underlyingType)) 10080conversion = GenerateConversion(_conversions, conversionOperand, operandType.Type, targetType, fromExplicitCast, extensionMethodThisArgument, isChecked: conversionOpt?.Checked ?? false); 10088if (operandType.Type?.IsNullableType() == true && !targetType.IsNullableType()) 10124TrackNullableStateOfTupleConversion(conversionOpt, conversionOperand, conversion, targetType, operandType.Type, fromExplicitCast: fromExplicitCast, slot, valueSlot, assignmentKind, parameterOpt, reportWarnings: reportRemainingWarnings); 10135canConvertNestedNullability = GenerateConversion(_conversions, conversionOperand, operandType.Type, targetType, fromExplicitCast, extensionMethodThisArgument, isChecked: conversionOpt?.Checked ?? false).Exists; 10173Conversion generated = GenerateConversion(_conversions, conversionOperand, operandType.Type, targetType, fromExplicitCast, extensionMethodThisArgument, isChecked: conversionOpt?.Checked ?? false); 10182Conversion generated = GenerateConversion(_conversions, conversionOperand, operandType.Type, targetType, fromExplicitCast, extensionMethodThisArgument, isChecked: conversionOpt?.Checked ?? false); 10206ReportNullabilityMismatchInArgument(getDiagnosticLocation(), operandType.Type, parameterOpt, targetType, forOutput: false); 10210ReportNullabilityMismatchInAssignment(getDiagnosticLocation(), GetTypeAsDiagnosticArgument(operandType.Type), targetType); 10251var type = operandType.Type; 10282var type = operandType.Type; 10482Debug.Assert(operandType.Type is object); 10490if (operandType.Type.IsNullableType() && !parameterType.IsNullableType()) 10492var underlyingOperandTypeWithAnnotations = operandType.Type.GetNullableUnderlyingTypeWithAnnotations(); 10679Debug.Assert(operandType.Type is object); 10806var type = typeWithState.Type; 10838Debug.Assert(operandType.Type is object); 10841var conversion = _conversions.ClassifyStandardConversion(operandType.Type, targetType.Type, ref discardedUseSiteInfo); 10846ReportNullabilityMismatchInArgument(diagnosticLocation, operandType.Type, parameterOpt, targetType.Type, forOutput: false); 10850ReportNullabilityMismatchInAssignment(diagnosticLocation, operandType.Type, targetType.Type); 11095method = (MethodSymbol)AsMemberOfType(receiverType.Type, method); 11464Debug.Assert(rightResult.Type is object); 11475deconstructMethod = (MethodSymbol)AsMemberOfType(rightResult.Type, deconstructMethod); 11621AreNullableAndUnderlyingTypes(lvalueType.Type, operandType.Type, out TypeWithAnnotations underlyingType)) 11759SetResultType(node, TypeWithState.Create(receiverType.Type, NullableFlowState.NotNull)); 11763SetResultType(node, TypeWithState.Create(results[0].RValueType.Type, GetState(ref State, extensionReceiverSlot))); 11783SetResultType(node, TypeWithState.Create(opType.Type, NullableFlowState.NotNull)); 11952SetResultType(node, TypeWithState.Create(receiverType.Type, NullableFlowState.NotNull)); 11956SetResultType(node, TypeWithState.Create(results[0].RValueType.Type, GetState(ref State, extensionReceiverSlot))); 11980SetResultType(node, TypeWithState.Create(opType.Type, NullableFlowState.NotNull)); 12234var receiverType = VisitRvalueWithState(receiverOpt).Type; 12312member = AsMemberOfType(receiverType.Type, member); 12316receiverType.Type is NamedTypeSymbol { IsUnionType: true } unionType && 12334if (PossiblyNullableType(resultType.Type)) 12340resultType = TypeWithState.Create(resultType.Type, state); 12462var resultType = resultTypeWithState.Type; 12580getEnumeratorType = spanType.Construct(ImmutableArray.Create(convertedResult.Type!.TryGetInlineArrayElementField()!.TypeWithAnnotations)); 12584getEnumeratorType = convertedResult.Type; 12600var currentPropertyGetter = (MethodSymbol)AsMemberOfType(enumeratorReturnType.Type, enumeratorInfoOpt.CurrentPropertyGetter); 12877method = (MethodSymbol)AsMemberOfType(operandType.Type!.StrippedType(), method); 12891[new BoundExpressionWithNullability(operand.Syntax, operand, operandType.ToTypeWithAnnotations(compilation).NullableAnnotation, operandType.Type)], 13123var reinferredGetResult = (MethodSymbol)AsMemberOfType(_visitResult.RValueType.Type, awaitableInfo.GetResult); 13365@event = (EventSymbol)AsMemberOfType(ResultType.Type, @event); 13474var resultTypeSymbol = resultType.Type; 13833Debug.Assert(ResultType is TypeWithState { Type: FunctionPointerTypeSymbol { }, State: NullableFlowState.NotNull });
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);