618 references to NullableAnnotation
Microsoft.CodeAnalysis.CSharp (261)
Binder\Binder.ValueChecks.cs (1)
3106=> TypeWithAnnotations.Create(_type, NullableAnnotation.NotAnnotated);
Binder\Binder_Constraints.cs (1)
556if (typeWithAnnotations.NullableAnnotation == NullableAnnotation.Annotated && performOnlyCycleSafeValidation &&
Binder\Binder_Expressions.cs (1)
1705expression = new BoundDiscardExpression(node, NullableAnnotation.Annotated, isInferred: true, type: null);
Binder\Binder_Patterns.cs (2)
333declType: TypeWithAnnotations.Create(narrowedType, NullableAnnotation.NotAnnotated), 943return TypeWithAnnotations.Create(inputType.StrippedType(), NullableAnnotation.NotAnnotated);
Binder\Semantics\BestTypeInferrer.cs (3)
16public static NullableAnnotation GetNullableAnnotation(ArrayBuilder<TypeWithAnnotations> types) 22var result = NullableAnnotation.NotAnnotated;
Binder\Semantics\OverloadResolution\MethodTypeInference.cs (4)
159private readonly NullableAnnotation[] _nullableAnnotationLowerBounds; 351_nullableAnnotationLowerBounds = new NullableAnnotation[methodTypeParameters.Length]; 3458var oldAnnotation = oldBound.NullableAnnotation; 3459var newAnnotation = oldAnnotation.MergeNullableAnnotation(candidate.NullableAnnotation, variance);
BoundTree\BoundDiscardExpression.cs (1)
25return this.Update(NullableAnnotation.Oblivious, this.IsInferred, binder.CreateErrorType("var"));
BoundTree\BoundExpressionWithNullability.cs (1)
11public BoundExpressionWithNullability(SyntaxNode syntax, BoundExpression expression, NullableAnnotation nullableAnnotation, TypeSymbol? type)
Compilation\CSharpCompilation.cs (7)
2392internal ArrayTypeSymbol CreateArrayTypeSymbol(TypeSymbol elementType, int rank = 1, NullableAnnotation elementNullableAnnotation = NullableAnnotation.Oblivious) 2410internal PointerTypeSymbol CreatePointerTypeSymbol(TypeSymbol elementType, NullableAnnotation elementNullableAnnotation = NullableAnnotation.Oblivious) 4195var annotation = (elementNullableAnnotations.IsDefault ? typeSymbol.NullableAnnotation : elementNullableAnnotations[i]).ToInternalAnnotation(); 4263var nullableAnnotation = memberNullableAnnotations.IsDefault ? NullableAnnotation.Oblivious : memberNullableAnnotations[i].ToInternalAnnotation();
FlowAnalysis\NullableWalker.cs (37)
126public VisitResult(TypeSymbol? type, NullableAnnotation annotation, NullableFlowState state) 187private readonly (SynthesizedBackingFieldSymbol field, NullableAnnotation assumedAnnotation)? _getterNullResilienceData; 463(SynthesizedBackingFieldSymbol field, NullableAnnotation assumedAnnotation)? getterNullResilienceData, 1741(SourcePropertyAccessorSymbol getter, SynthesizedBackingFieldSymbol field, NullableAnnotation assumedNullableAnnotation)? getterNullResilienceData = null) 1824(SynthesizedBackingFieldSymbol field, NullableAnnotation assumedAnnotation)? getterNullResilienceData, 2376case NullableAnnotation.Oblivious: 2377case NullableAnnotation.Annotated: 2869NullableAnnotation nullableAnnotation; 4385var result = new VisitResult(objectInitializer.Type, NullableAnnotation.NotAnnotated, NullableFlowState.NotNull); 4575SetAnalyzedNullability(node.ImplicitReceiverOpt, new VisitResult(node.ImplicitReceiverOpt.Type, NullableAnnotation.NotAnnotated, NullableFlowState.NotNull)); 4691return GetOrCreatePlaceholderSlot(node, TypeWithAnnotations.Create(node.Type, NullableAnnotation.NotAnnotated)); 5849targetType = TypeWithAnnotations.Create(node.Type, NullableAnnotation.NotAnnotated); 6181var lValueAnnotation = consequenceLValue.NullableAnnotation.EnsureCompatible(alternativeLValue.NullableAnnotation); 8354private static NullableAnnotation GetNullableAnnotation(BoundExpression expr) 8361return expr.ConstantValueOpt == ConstantValue.NotAvailable || !expr.ConstantValueOpt.IsNull || expr.IsSuppressed ? NullableAnnotation.NotAnnotated : NullableAnnotation.Annotated; 8369return NullableAnnotation.NotAnnotated; 8372return NullableAnnotation.Oblivious; 8454return new BoundExpressionWithNullability(argument.Syntax, argument, NullableAnnotation.Oblivious, type: null); 9659dependsOnTypeParameter(typeParameter1, (TypeParameterSymbol)targetType.Type, NullableAnnotation.NotAnnotated, out var annotation)) 9661return (annotation == NullableAnnotation.Annotated) ? NullableFlowState.MaybeDefault : NullableFlowState.MaybeNull; 9692bool dependsOn = dependsOnTypeParameter(typeParameter1, typeParameter2, NullableAnnotation.NotAnnotated, out var annotation); 9696return (annotation == NullableAnnotation.Annotated) ? NullableFlowState.MaybeDefault : NullableFlowState.MaybeNull; 9729static bool dependsOnTypeParameter(TypeParameterSymbol typeParameter1, TypeParameterSymbol typeParameter2, NullableAnnotation typeParameter1Annotation, out NullableAnnotation annotation) 9737var combinedAnnotation = NullableAnnotation.Annotated; 9741dependsOnTypeParameter(constraintTypeParameter, typeParameter2, constraintType.NullableAnnotation, out var constraintAnnotation)) 10236var argTypeWithAnnotations = TypeWithAnnotations.Create(argType, NullableAnnotation.NotAnnotated); 10435var lvalueResult = TypeWithAnnotations.Create(node.Type, NullableAnnotation.NotAnnotated); 10715placeholderArgs.Add(new BoundExpressionWithNullability(variables[i].Expression.Syntax, variables[i].Expression, NullableAnnotation.Oblivious, conversion.DeconstructionInfo.OutputPlaceholders[i].Type)); 11702TypeWithAnnotations.Create(enumeratorInfoOpt.ElementType, NullableAnnotation.NotAnnotated).ToTypeWithState(); 12493var result = TypeWithAnnotations.Create(node.Type, NullableAnnotation.Oblivious); 12599var result = TypeWithAnnotations.Create(node.Type, NullableAnnotation.Oblivious); 12770var result = TypeWithAnnotations.Create(node.Type, node.IsInferred ? NullableAnnotation.Annotated : node.NullableAnnotation);
FlowAnalysis\NullableWalker_Patterns.cs (3)
476outputSlot = makeDagTempSlot(TypeWithAnnotations.Create(e.Type, NullableAnnotation.NotAnnotated), output); 535? ReInferAndVisitExtensionPropertyAccess(e, e.Property, new BoundExpressionWithNullability(e.Syntax, expression, NullableAnnotation.NotAnnotated, inputType)).updatedProperty 841var type = TypeWithAnnotations.Create(t, NullableAnnotation.Annotated);
Generated\BoundNodes.xml.Generated.cs (10)
1526public BoundRefValueOperator(SyntaxNode syntax, NullableAnnotation nullableAnnotation, BoundExpression operand, TypeSymbol type, bool hasErrors = false) 1538public NullableAnnotation NullableAnnotation { get; } 1544public BoundRefValueOperator Update(NullableAnnotation nullableAnnotation, BoundExpression operand, TypeSymbol type) 8555public BoundDiscardExpression(SyntaxNode syntax, NullableAnnotation nullableAnnotation, bool isInferred, TypeSymbol? type, bool hasErrors) 8562public BoundDiscardExpression(SyntaxNode syntax, NullableAnnotation nullableAnnotation, bool isInferred, TypeSymbol? type) 8570public NullableAnnotation NullableAnnotation { get; } 8576public BoundDiscardExpression Update(NullableAnnotation nullableAnnotation, bool isInferred, TypeSymbol? type) 8788public BoundExpressionWithNullability(SyntaxNode syntax, BoundExpression expression, NullableAnnotation nullableAnnotation, TypeSymbol? type, bool hasErrors = false) 8800public NullableAnnotation NullableAnnotation { get; } 8805public BoundExpressionWithNullability Update(BoundExpression expression, NullableAnnotation nullableAnnotation, TypeSymbol? type)
Symbols\AliasSymbol.cs (1)
409annotatedNamespaceOrType.TypeWithAnnotations.NullableAnnotation == NullableAnnotation.Annotated &&
Symbols\AnonymousTypes\SynthesizedSymbols\AnonymousType.ToStringMethodSymbol.cs (1)
49get { return TypeWithAnnotations.Create(this.Manager.System_String, NullableAnnotation.NotAnnotated); }
Symbols\ConstraintsHelper.cs (8)
1241case NullableAnnotation.Annotated: 1243case NullableAnnotation.Oblivious: 1280case NullableAnnotation.Oblivious: 1281case NullableAnnotation.Annotated: 1639case NullableAnnotation.Annotated: 1641case NullableAnnotation.NotAnnotated: 1643case NullableAnnotation.Oblivious: 1661case NullableAnnotation.Annotated:
Symbols\Metadata\PE\SymbolFactory.cs (1)
170return TypeWithAnnotations.Create(type, NullableAnnotation.Oblivious, CSharpCustomModifier.Convert(customModifiers));
Symbols\NullableAnnotation.cs (6)
13/// The order of values here is used in the computation of <see cref="NullableAnnotationExtensions.Meet(NullableAnnotation, NullableAnnotation)"/>, 14/// <see cref="NullableAnnotationExtensions.Join(NullableAnnotation, NullableAnnotation)"/>, and 15/// <see cref="NullableAnnotationExtensions.EnsureCompatible(NullableAnnotation, NullableAnnotation)"/>. If the order here is changed
Symbols\NullableAnnotationExtensions.cs (44)
16public static bool IsAnnotated(this NullableAnnotation annotation) => annotation == NullableAnnotation.Annotated; 18public static bool IsNotAnnotated(this NullableAnnotation annotation) => annotation == NullableAnnotation.NotAnnotated; 20public static bool IsOblivious(this NullableAnnotation annotation) => annotation == NullableAnnotation.Oblivious; 26public static NullableAnnotation Join(this NullableAnnotation a, NullableAnnotation b) 28Debug.Assert(a != NullableAnnotation.Ignored); 29Debug.Assert(b != NullableAnnotation.Ignored); 37public static NullableAnnotation Meet(this NullableAnnotation a, NullableAnnotation b) 39Debug.Assert(a != NullableAnnotation.Ignored); 40Debug.Assert(b != NullableAnnotation.Ignored); 48public static NullableAnnotation EnsureCompatible(this NullableAnnotation a, NullableAnnotation b) 50Debug.Assert(a != NullableAnnotation.Ignored); 51Debug.Assert(b != NullableAnnotation.Ignored); 54(NullableAnnotation.Oblivious, _) => b, 55(_, NullableAnnotation.Oblivious) => a, 63public static NullableAnnotation MergeNullableAnnotation(this NullableAnnotation a, NullableAnnotation b, VarianceKind variance) 65Debug.Assert(a != NullableAnnotation.Ignored); 66Debug.Assert(b != NullableAnnotation.Ignored); 77/// The attribute (metadata) representation of <see cref="NullableAnnotation.NotAnnotated"/>. 82/// The attribute (metadata) representation of <see cref="NullableAnnotation.Annotated"/>. 87/// The attribute (metadata) representation of <see cref="NullableAnnotation.Oblivious"/>. 98CSharp.NullableAnnotation internalAnnotation = annotation.ToInternalAnnotation(); 102internal static NullabilityInfo ToNullabilityInfo(this NullableAnnotation annotation, TypeSymbol type) 126internal static CodeAnalysis.NullableAnnotation ToPublicAnnotation(TypeSymbol? type, NullableAnnotation annotation) 128Debug.Assert(annotation != NullableAnnotation.Ignored); 131NullableAnnotation.Annotated => CodeAnalysis.NullableAnnotation.Annotated, 132NullableAnnotation.NotAnnotated => CodeAnalysis.NullableAnnotation.NotAnnotated, 137NullableAnnotation.Oblivious when type?.IsValueType == true => CodeAnalysis.NullableAnnotation.NotAnnotated, 138NullableAnnotation.Oblivious => CodeAnalysis.NullableAnnotation.None, 140NullableAnnotation.Ignored => CodeAnalysis.NullableAnnotation.None, 148internal static CSharp.NullableAnnotation ToInternalAnnotation(this CodeAnalysis.NullableAnnotation annotation) => 151CodeAnalysis.NullableAnnotation.None => CSharp.NullableAnnotation.Oblivious, 152CodeAnalysis.NullableAnnotation.NotAnnotated => CSharp.NullableAnnotation.NotAnnotated, 153CodeAnalysis.NullableAnnotation.Annotated => CSharp.NullableAnnotation.Annotated,
Symbols\PublicModel\Symbol.cs (3)
25builder.Add(TypeWithAnnotations.Create(type, (typeArg?.NullableAnnotation.ToInternalAnnotation() ?? NullableAnnotation.NotAnnotated))); 48var annotation = typeArgumentNullableAnnotations.IsDefault ? NullableAnnotation.Oblivious : typeArgumentNullableAnnotations[i].ToInternalAnnotation();
Symbols\Source\IndexedTypeParameterSymbol.cs (1)
113builder.Add(TypeWithAnnotations.Create(GetTypeParameter(i), NullableAnnotation.Ignored));
Symbols\Source\SourceNamedTypeSymbol_Extension.cs (5)
477static void appendAnnotation(StringBuilder builder, NullableAnnotation annotation) 481case NullableAnnotation.Annotated: 484case NullableAnnotation.NotAnnotated: 487case NullableAnnotation.Oblivious: 489case NullableAnnotation.Ignored:
Symbols\Source\ThisParameterSymbol.cs (1)
146=> TypeWithAnnotations.Create(_containingType, NullableAnnotation.NotAnnotated);
Symbols\Synthesized\Records\SynthesizedRecordBaseEquals.cs (1)
32TypeWithAnnotations.Create(ContainingType.BaseTypeNoUseSiteDiagnostics, NullableAnnotation.Annotated),
Symbols\Synthesized\Records\SynthesizedRecordEqualityContractProperty.cs (1)
83return (TypeWithAnnotations.Create(Binder.GetWellKnownType(DeclaringCompilation, WellKnownType.System_Type, diagnostics, Location), NullableAnnotation.NotAnnotated),
Symbols\Synthesized\Records\SynthesizedRecordEqualityOperatorBase.cs (3)
70var annotation = ContainingType.IsRecordStruct ? NullableAnnotation.Oblivious : NullableAnnotation.Annotated;
Symbols\Synthesized\Records\SynthesizedRecordEquals.cs (3)
36var annotation = ContainingType.IsRecordStruct ? NullableAnnotation.Oblivious : NullableAnnotation.Annotated;
Symbols\Synthesized\Records\SynthesizedRecordObjEquals.cs (3)
31var annotation = ContainingType.IsRecordStruct ? NullableAnnotation.Oblivious : NullableAnnotation.Annotated;
Symbols\Synthesized\Records\SynthesizedRecordPrintMembers.cs (3)
93var annotation = ContainingType.IsRecordStruct ? NullableAnnotation.Oblivious : NullableAnnotation.NotAnnotated;
Symbols\Synthesized\Records\SynthesizedRecordToString.cs (3)
42var annotation = ContainingType.IsRecordStruct ? NullableAnnotation.Oblivious : NullableAnnotation.NotAnnotated;
Symbols\Synthesized\SynthesizedBackingFieldSymbol.cs (21)
84private int _inferredNullableAnnotation = (int)NullableAnnotation.Ignored; 140if (propertyType.NullableAnnotation != NullableAnnotation.NotAnnotated 150internal NullableAnnotation GetInferredNullableAnnotation() 152if (_inferredNullableAnnotation == (int)NullableAnnotation.Ignored) 154var inferredAnnotation = ComputeInferredNullableAnnotation(); 155Debug.Assert(inferredAnnotation is not NullableAnnotation.Ignored); 156Interlocked.CompareExchange(ref _inferredNullableAnnotation, (int)inferredAnnotation, (int)NullableAnnotation.Ignored); 158Debug.Assert((NullableAnnotation)_inferredNullableAnnotation is NullableAnnotation.NotAnnotated or NullableAnnotation.Annotated); 159return (NullableAnnotation)_inferredNullableAnnotation; 162private NullableAnnotation ComputeInferredNullableAnnotation() 171return NullableAnnotation.Annotated; 177return NullableAnnotation.NotAnnotated; 182var annotatedDiagnostics = nullableAnalyzeAndFilterDiagnostics(assumedNullableAnnotation: NullableAnnotation.Annotated); 187return NullableAnnotation.Annotated; 190var notAnnotatedDiagnostics = nullableAnalyzeAndFilterDiagnostics(assumedNullableAnnotation: NullableAnnotation.NotAnnotated); 196return NullableAnnotation.NotAnnotated; 210return NullableAnnotation.NotAnnotated; 215return NullableAnnotation.Annotated; 217DiagnosticBag nullableAnalyzeAndFilterDiagnostics(NullableAnnotation assumedNullableAnnotation)
Symbols\TypeMap.cs (1)
32return typeParameters.SelectAsArray(static (tp) => TypeWithAnnotations.Create(tp, NullableAnnotation.Ignored));
Symbols\TypeSymbol.cs (1)
2514internal CodeAnalysis.NullableAnnotation DefaultNullableAnnotation => NullableAnnotationExtensions.ToPublicAnnotation(this, NullableAnnotation.Oblivious);
Symbols\TypeWithAnnotations.cs (73)
51public readonly NullableAnnotation DefaultNullableAnnotation; 53private TypeWithAnnotations(TypeSymbol defaultType, NullableAnnotation defaultAnnotation, Extensions extensions) 55Debug.Assert(defaultType?.IsNullableType() != true || defaultAnnotation == NullableAnnotation.Annotated); 82return Create(typeSymbol, nullableAnnotation: isAnnotated ? NullableAnnotation.Annotated : isNullableEnabled ? NullableAnnotation.NotAnnotated : NullableAnnotation.Oblivious); 85internal static TypeWithAnnotations Create(TypeSymbol typeSymbol, NullableAnnotation nullableAnnotation = NullableAnnotation.Oblivious, ImmutableArray<CustomModifier> customModifiers = default) 92Debug.Assert(nullableAnnotation != NullableAnnotation.Ignored || typeSymbol.IsTypeParameter()); 95case NullableAnnotation.Oblivious: 96case NullableAnnotation.NotAnnotated: 100nullableAnnotation = NullableAnnotation.Annotated; 115return Create(Type, NullableAnnotation.Annotated, CustomModifiers); 125return Create(Type, NullableAnnotation.NotAnnotated, CustomModifiers); 129internal NullableAnnotation GetValueNullableAnnotation() 138return NullableAnnotation.Annotated; 143return NullableAnnotation.Annotated; 155case NullableAnnotation.Oblivious: 156case NullableAnnotation.Annotated: 159case NullableAnnotation.NotAnnotated: 168private static TypeWithAnnotations CreateNonLazyType(TypeSymbol typeSymbol, NullableAnnotation nullableAnnotation, ImmutableArray<CustomModifier> customModifiers) 175return new TypeWithAnnotations(defaultType: underlying.DefaultType, defaultAnnotation: NullableAnnotation.Annotated, new LazyNullableTypeParameter(compilation, underlying)); 180return new TypeWithAnnotations(defaultType: substitutedTypeSymbol, defaultAnnotation: NullableAnnotation.Ignored, new LazySubstitutedType(customModifiers, typeParameter)); 204return CreateNonLazyType(typeSymbol, NullableAnnotation.Annotated, this.CustomModifiers); 244NullableAnnotation nullableAnnotation = this.NullableAnnotation.MergeNullableAnnotation(other.NullableAnnotation, variance); 255public NullableAnnotation NullableAnnotation => _extensions?.GetResolvedAnnotation(DefaultNullableAnnotation) ?? default; 364var thisAnnotation = NullableAnnotation; 365var otherAnnotation = other.NullableAnnotation; 442Debug.Assert(NullableAnnotation != NullableAnnotation.Ignored); 452Debug.Assert(NullableAnnotation != NullableAnnotation.Ignored); 473else if (Is((TypeParameterSymbol)typeSymbol) && newTypeWithModifiers.NullableAnnotation != NullableAnnotation.Ignored) 483NullableAnnotation newAnnotation; 484Debug.Assert(newTypeWithModifiers.Type is not IndexedTypeParameterSymbol || newTypeWithModifiers.NullableAnnotation == NullableAnnotation.Ignored); 488newAnnotation = NullableAnnotation.Annotated; 490else if (newTypeWithModifiers.NullableAnnotation == NullableAnnotation.Ignored) 494else if (NullableAnnotation != NullableAnnotation.Oblivious) 496Debug.Assert(NullableAnnotation == NullableAnnotation.NotAnnotated); 497if (newTypeWithModifiers.NullableAnnotation == NullableAnnotation.Oblivious) 505newAnnotation = NullableAnnotation.NotAnnotated; 518Debug.Assert(newTypeWithModifiers.NullableAnnotation is NullableAnnotation.NotAnnotated); 519newAnnotation = NullableAnnotation.NotAnnotated; 522else if (newTypeWithModifiers.NullableAnnotation != NullableAnnotation.Oblivious) 596typeWithAnnotationsPredicate: (t, a, b) => t.NullableAnnotation != NullableAnnotation.Oblivious && !t.Type.IsErrorType() && !t.Type.IsValueType, 633var annotation = typeWithAnnotations.NullableAnnotation; 709if (result.NullableAnnotation != NullableAnnotation.Oblivious && 712result = CreateNonLazyType(newTypeSymbol, NullableAnnotation.Oblivious, result.CustomModifiers); 732return CreateNonLazyType(typeSymbol, NullableAnnotation.NotAnnotated, CustomModifiers); 740if (NullableAnnotation != NullableAnnotation.Oblivious) 745return CreateNonLazyType(newTypeSymbol, NullableAnnotation.Oblivious, CustomModifiers); 813static NullableFlowState getFlowState(TypeSymbol type, NullableAnnotation annotation) 821return annotation switch { NullableAnnotation.Annotated => NullableFlowState.MaybeDefault, NullableAnnotation.NotAnnotated => NullableFlowState.MaybeNull, _ => NullableFlowState.NotNull }; 825return annotation switch { NullableAnnotation.Annotated => NullableFlowState.MaybeDefault, _ => NullableFlowState.NotNull }; 831return annotation switch { NullableAnnotation.Annotated => NullableFlowState.MaybeNull, _ => NullableFlowState.NotNull }; 853internal abstract NullableAnnotation GetResolvedAnnotation(NullableAnnotation defaultAnnotation); 894internal override NullableAnnotation GetResolvedAnnotation(NullableAnnotation defaultAnnotation) => defaultAnnotation; 921return CreateNonLazyType(type.DefaultType, NullableAnnotation.Annotated, _customModifiers); 927return CreateNonLazyType(defaultType, defaultType.IsNullableType() ? type.NullableAnnotation : NullableAnnotation.NotAnnotated, _customModifiers); 978internal override NullableAnnotation GetResolvedAnnotation(NullableAnnotation defaultAnnotation) 980Debug.Assert(defaultAnnotation == NullableAnnotation.Ignored); 987return (NullableAnnotation)_resolved; 989NullableAnnotation getResolvedAnnotationCore() 994return NullableAnnotation.NotAnnotated; 1000return NullableAnnotation.Oblivious; 1008internal override bool IsResolved => _resolved != (int)NullableAnnotation.Ignored; 1024return CreateNonLazyType(type.DefaultType, NullableAnnotation.Annotated, _customModifiers); 1030return CreateNonLazyType(defaultType, defaultType.IsNullableType() ? type.NullableAnnotation : NullableAnnotation.NotAnnotated, _customModifiers); 1051_ = GetResolvedAnnotation(NullableAnnotation.Ignored); 1109internal override NullableAnnotation GetResolvedAnnotation(NullableAnnotation defaultAnnotation) => defaultAnnotation;
Symbols\TypeWithState.cs (6)
89var type = TypeWithAnnotations.Create(Type, NullableAnnotation.NotAnnotated); 92NullableAnnotation annotation = asAnnotatedType ? 93(Type?.IsValueType == true ? NullableAnnotation.NotAnnotated : NullableAnnotation.Annotated) : 94(State.IsNotNull() || Type?.CanContainNull() == false ? NullableAnnotation.NotAnnotated : NullableAnnotation.Annotated);
Microsoft.CodeAnalysis.CSharp.Emit.UnitTests (5)
CodeGen\CodeGenLocalFunctionTests.cs (2)
5363Assert.Equal(NullableAnnotation.Annotated, localFn1.ReturnTypeWithAnnotations.NullableAnnotation); 5367Assert.Equal(NullableAnnotation.Annotated, param.TypeWithAnnotations.NullableAnnotation);
CodeGen\CodeGenTupleTest.cs (3)
28989var obliviousObject = TypeWithAnnotations.Create(@object, NullableAnnotation.Oblivious); 29006var nullableObject = TypeWithAnnotations.Create(@object, NullableAnnotation.Annotated); 29007var nonNullableObject = TypeWithAnnotations.Create(@object, NullableAnnotation.NotAnnotated);
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (105)
FieldKeywordTests.cs (102)
7401verify(classC.GetMember<SynthesizedBackingFieldSymbol>("<P1>k__BackingField"), NullableAnnotation.Annotated); 7402verify(classC.GetMember<SynthesizedBackingFieldSymbol>("<P2>k__BackingField"), NullableAnnotation.NotAnnotated); 7403verify(classC.GetMember<SynthesizedBackingFieldSymbol>("<P3>k__BackingField"), NullableAnnotation.Annotated); 7404verify(classC.GetMember<SynthesizedBackingFieldSymbol>("<P4>k__BackingField"), NullableAnnotation.Annotated); 7405verify(classC.GetMember<SynthesizedBackingFieldSymbol>("<P5>k__BackingField"), NullableAnnotation.NotAnnotated); 7406verify(classC.GetMember<SynthesizedBackingFieldSymbol>("<P6>k__BackingField"), NullableAnnotation.Annotated); 7408void verify(SynthesizedBackingFieldSymbol field, NullableAnnotation expectedInferredAnnotation) 7410Assert.Equal(NullableAnnotation.NotAnnotated, field.TypeWithAnnotations.NullableAnnotation); 10745Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.GetInferredNullableAnnotation()); 10746Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 10767Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.GetInferredNullableAnnotation()); 10768Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 10799Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 10800Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 10860Assert.Equal(NullableAnnotation.Annotated, field.GetInferredNullableAnnotation()); 10861Assert.Equal(NullableAnnotation.NotAnnotated, field.TypeWithAnnotations.NullableAnnotation); 10879Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.GetInferredNullableAnnotation()); 10880Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 10899Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.GetInferredNullableAnnotation()); 10900Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 10920Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 10921Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 10939Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 10940Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 10959Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 10960Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 10983Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 10984Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11013Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 11014Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11041Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 11042Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11068Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 11069Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11092Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 11093Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11119Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11144Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 11145Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11173Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 11174Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11197Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 11198Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11224Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.GetInferredNullableAnnotation()); 11225Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11253Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.GetInferredNullableAnnotation()); 11254Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11283Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.GetInferredNullableAnnotation()); 11284Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11311Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 11312Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11350Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 11351Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11382Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 11383Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11418Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11447Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.GetInferredNullableAnnotation()); 11448Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11471Assert.Equal(NullableAnnotation.Annotated, prop.BackingField.GetInferredNullableAnnotation()); 11472Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11513Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.GetInferredNullableAnnotation()); 11514Assert.Equal(NullableAnnotation.NotAnnotated, prop.BackingField.TypeWithAnnotations.NullableAnnotation); 11537Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11538Assert.Equal(NullableAnnotation.Annotated, sourceField.GetInferredNullableAnnotation()); 11542Assert.Equal(NullableAnnotation.NotAnnotated, metadataField.TypeWithAnnotations.NullableAnnotation); 11576Assert.Equal(NullableAnnotation.Annotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11613Assert.Equal(NullableAnnotation.Annotated, sourceField.GetInferredNullableAnnotation()); 11614Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11634Assert.Equal(NullableAnnotation.Annotated, sourceField.GetInferredNullableAnnotation()); 11635Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11658Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.GetInferredNullableAnnotation()); 11659Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11683Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.GetInferredNullableAnnotation()); 11684Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11704Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.GetInferredNullableAnnotation()); 11705Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11736Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.GetInferredNullableAnnotation()); 11737Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11769Assert.Equal(NullableAnnotation.Annotated, sourceField.GetInferredNullableAnnotation()); 11770Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11799Assert.Equal(NullableAnnotation.Annotated, sourceField.GetInferredNullableAnnotation()); 11800Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11842Assert.Equal(NullableAnnotation.Annotated, sourceField.GetInferredNullableAnnotation()); 11843Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11871Assert.Equal(NullableAnnotation.Annotated, sourceField.GetInferredNullableAnnotation()); 11872Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11903Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.GetInferredNullableAnnotation()); 11904Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11938Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.GetInferredNullableAnnotation()); 11939Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 11969Assert.Equal(NullableAnnotation.Annotated, sourceField.GetInferredNullableAnnotation()); 11970Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 12003Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.GetInferredNullableAnnotation()); 12004Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 12033Assert.Equal(NullableAnnotation.Annotated, sourceField.GetInferredNullableAnnotation()); 12034Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 12066Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.GetInferredNullableAnnotation()); 12067Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 12100Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.GetInferredNullableAnnotation()); 12101Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation); 12131Assert.Equal(NullableAnnotation.Annotated, sourceField.GetInferredNullableAnnotation()); 12132Assert.Equal(NullableAnnotation.NotAnnotated, sourceField.TypeWithAnnotations.NullableAnnotation);
PartialEventsAndConstructorsTests.cs (3)
2776Assert.Equal(NullableAnnotation.NotAnnotated, e.TypeWithAnnotations.NullableAnnotation); 2780Assert.Equal(NullableAnnotation.Annotated, f.TypeWithAnnotations.NullableAnnotation); 2784Assert.Equal(NullableAnnotation.Oblivious, g.TypeWithAnnotations.NullableAnnotation);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (240)
Semantics\DelegateTypeTests.cs (4)
15666var funcOfObjectNullable = funcOfT.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(objectType, NullableAnnotation.Annotated))); 15667var funcOfStringNullable = funcOfT.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(stringType, NullableAnnotation.Annotated))); 15668var funcOfStringNotNullable = funcOfT.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(stringType, NullableAnnotation.NotAnnotated))); 15684var setNotNullable = (TypeWithAnnotations type) => TypeWithAnnotations.Create(type.Type, NullableAnnotation.NotAnnotated);
Semantics\NullableReferenceTypesTests.cs (236)
8815Assert.Equal(NullableAnnotation.Oblivious, getParameterType(comp0).NullableAnnotation); 8820Assert.Equal(NullableAnnotation.Oblivious, getParameterType(comp1).NullableAnnotation); 8823Assert.Equal(NullableAnnotation.Oblivious, getParameterType(comp1).NullableAnnotation); 8828Assert.Equal(NullableAnnotation.Oblivious, getParameterType(comp1).NullableAnnotation); 8831Assert.Equal(NullableAnnotation.Oblivious, getParameterType(comp1).NullableAnnotation); 8838Assert.Equal(NullableAnnotation.Oblivious, getParameterType(comp0).NullableAnnotation); 8843Assert.Equal(NullableAnnotation.Oblivious, getParameterType(comp1).NullableAnnotation); 8846Assert.Equal(NullableAnnotation.Oblivious, getParameterType(comp1).NullableAnnotation); 8851Assert.Equal(NullableAnnotation.Oblivious, getParameterType(comp1).NullableAnnotation); 8854Assert.Equal(NullableAnnotation.Oblivious, getParameterType(comp1).NullableAnnotation); 8858Assert.Equal(NullableAnnotation.Oblivious, getParameterType(comp1).NullableAnnotation); 8861Assert.Equal(NullableAnnotation.Oblivious, getParameterType(comp1).NullableAnnotation); 8868Assert.Equal(NullableAnnotation.NotAnnotated, getParameterType(comp0).NullableAnnotation); 8873Assert.Equal(NullableAnnotation.NotAnnotated, getParameterType(comp1).NullableAnnotation); 8876Assert.Equal(NullableAnnotation.NotAnnotated, getParameterType(comp1).NullableAnnotation); 8881Assert.Equal(NullableAnnotation.NotAnnotated, getParameterType(comp1).NullableAnnotation); 8884Assert.Equal(NullableAnnotation.NotAnnotated, getParameterType(comp1).NullableAnnotation); 8891Assert.Equal(NullableAnnotation.NotAnnotated, getParameterType(comp1).NullableAnnotation); 8897Assert.Equal(NullableAnnotation.NotAnnotated, getParameterType(comp1).NullableAnnotation); 8934Assert.Equal(NullableAnnotation.Oblivious, c.GetMember<FieldSymbol>("C.F").TypeWithAnnotations.NullableAnnotation); 8935Assert.Equal(NullableAnnotation.Oblivious, c.GetMember<EventSymbol>("C.E").TypeWithAnnotations.NullableAnnotation); 8936Assert.Equal(NullableAnnotation.Oblivious, c.GetMember<PropertySymbol>("C.P").TypeWithAnnotations.NullableAnnotation); 8938Assert.Equal(NullableAnnotation.Oblivious, indexer.TypeWithAnnotations.NullableAnnotation); 8939Assert.Equal(NullableAnnotation.Oblivious, indexer.Parameters[0].TypeWithAnnotations.NullableAnnotation); 8941Assert.Equal(NullableAnnotation.Oblivious, method.ReturnTypeWithAnnotations.NullableAnnotation); 8942Assert.Equal(NullableAnnotation.Oblivious, method.Parameters[0].TypeWithAnnotations.NullableAnnotation); 8981Assert.Equal(NullableAnnotation.Oblivious, tuple.TupleElements[0].TypeWithAnnotations.NullableAnnotation); 8982Assert.Equal(NullableAnnotation.Oblivious, tuple.TupleElements[1].TypeWithAnnotations.NullableAnnotation); 9022Assert.Equal(NullableAnnotation.Oblivious, constraintType.NullableAnnotation); 9025Assert.Equal(NullableAnnotation.Oblivious, constraintType.NullableAnnotation); 9028Assert.Equal(NullableAnnotation.Oblivious, constraintType.NullableAnnotation); 9048Assert.Equal(NullableAnnotation.Oblivious, typeArg.NullableAnnotation); 9050Assert.Equal(NullableAnnotation.Oblivious, method.ReturnTypeWithAnnotations.NullableAnnotation); 9052Assert.Equal(NullableAnnotation.Oblivious, typeArg.NullableAnnotation); 9054Assert.Equal(NullableAnnotation.Oblivious, parameter.TypeWithAnnotations.NullableAnnotation); 9056Assert.Equal(NullableAnnotation.Oblivious, typeArg.NullableAnnotation); 10355Assert.Equal(NullableAnnotation.Oblivious, typeArg.NullableAnnotation); 10360Assert.Equal(NullableAnnotation.Oblivious, typeArg.NullableAnnotation); 11180verify("C1.F1", "System.String", NullableAnnotation.Oblivious); 11181verify("C1.F2", "System.String?", NullableAnnotation.Annotated); 11182verify("C1.F3", "System.Int32", NullableAnnotation.Oblivious); 11183verify("C1.F4", "System.Int32?", NullableAnnotation.Annotated); 11184verify("C1.F5", "System.Int32?", NullableAnnotation.Annotated); 11185verify("C2.F1", "System.String", NullableAnnotation.Oblivious); 11186verify("C2.F2", "System.String?", NullableAnnotation.Annotated); 11187verify("C2.F3", "System.Int32", NullableAnnotation.Oblivious); 11188verify("C2.F4", "System.Int32?", NullableAnnotation.Annotated); 11189verify("C2.F5", "System.Int32?", NullableAnnotation.Annotated); 11190verify("C3.F1", "System.String!", NullableAnnotation.NotAnnotated); 11191verify("C3.F2", "System.String?", NullableAnnotation.Annotated); 11192verify("C3.F3", "System.Int32", NullableAnnotation.NotAnnotated); 11193verify("C3.F4", "System.Int32?", NullableAnnotation.Annotated); 11194verify("C3.F5", "System.Int32?", NullableAnnotation.Annotated); 11198void verify(string methodName, string displayName, NullableAnnotation nullableAnnotation) 11276verify("C1.F1", "T", NullableAnnotation.Oblivious); 11277verify("C1.F2", "T?", NullableAnnotation.Annotated); 11278verify("C1.F3", "T", NullableAnnotation.Oblivious); 11279verify("C1.F4", "T?", NullableAnnotation.Annotated); 11280verify("C1.F5", "T", NullableAnnotation.Oblivious); 11281verify("C1.F6", "T?", NullableAnnotation.Annotated); 11282verify("C1.F7", "T?", NullableAnnotation.Annotated); 11283verify("C2.F1", "T", NullableAnnotation.Oblivious); 11284verify("C2.F2", "T?", NullableAnnotation.Annotated); 11285verify("C2.F3", "T", NullableAnnotation.Oblivious); 11286verify("C2.F4", "T?", NullableAnnotation.Annotated); 11287verify("C2.F5", "T", NullableAnnotation.Oblivious); 11288verify("C2.F6", "T?", NullableAnnotation.Annotated); 11289verify("C2.F7", "T?", NullableAnnotation.Annotated); 11290verify("C3.F1", "T", NullableAnnotation.NotAnnotated); 11291verify("C3.F2", "T?", NullableAnnotation.Annotated); 11292verify("C3.F3", "T!", NullableAnnotation.NotAnnotated); 11293verify("C3.F4", "T?", NullableAnnotation.Annotated); 11294verify("C3.F5", "T", NullableAnnotation.NotAnnotated); 11295verify("C3.F6", "T?", NullableAnnotation.Annotated); 11296verify("C3.F7", "T?", NullableAnnotation.Annotated); 11301void verify(string methodName, string displayName, NullableAnnotation nullableAnnotation) 12100Assert.Equal(NullableAnnotation.Annotated, m1.Parameters[0].TypeWithAnnotations.NullableAnnotation); 13899Assert.Equal(NullableAnnotation.Annotated, m1.Parameters[0].TypeWithAnnotations.NullableAnnotation); 13905Assert.Equal(NullableAnnotation.Annotated, m2.ReturnTypeWithAnnotations.NullableAnnotation); 59062Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 59096Assert.Equal(NullableAnnotation.Oblivious, symbol.TypeWithAnnotations.NullableAnnotation); 59124Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 59156Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 59185Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 59218Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 59250Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 59283Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 59317Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 59344Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 59374Assert.Equal(NullableAnnotation.Annotated, type.NullableAnnotation); 59402Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 59406Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 59410Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 71297Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 71301Assert.Equal(NullableAnnotation.NotAnnotated, symbol.TypeWithAnnotations.NullableAnnotation); 71333Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 71336Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 71374Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 71377Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 71411Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 71414Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 71448Assert.Equal(NullableAnnotation.NotAnnotated, symbol.TypeWithAnnotations.NullableAnnotation); 71451Assert.Equal(NullableAnnotation.NotAnnotated, symbol.TypeWithAnnotations.NullableAnnotation); 71483Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 71486Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 71516Assert.Equal(NullableAnnotation.NotAnnotated, symbol.TypeWithAnnotations.NullableAnnotation); 71553Assert.Equal(NullableAnnotation.NotAnnotated, symbol.TypeWithAnnotations.NullableAnnotation); 71556Assert.Equal(NullableAnnotation.Annotated, symbol.TypeWithAnnotations.NullableAnnotation); 113155m1.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(a, NullableAnnotation.Annotated))), 113156m1.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(a, NullableAnnotation.NotAnnotated))), 113157m1.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(a, NullableAnnotation.Oblivious))) 113162m1.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(a, NullableAnnotation.Annotated))), 113163m1.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(a, NullableAnnotation.NotAnnotated))), 113164m1.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(a, NullableAnnotation.Oblivious))) 113521Assert.Equal(NullableAnnotation.NotAnnotated, f1.TypeWithAnnotations.NullableAnnotation); 113546Assert.Equal(NullableAnnotation.Oblivious, f1.TypeWithAnnotations.NullableAnnotation); 115837var c2 = cDefinition.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(cDefinition.TypeParameters.Single(), NullableAnnotation.NotAnnotated))); 115849var c3 = cDefinition.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(cDefinition.TypeParameters.Single(), NullableAnnotation.Annotated))); 115879var i1 = iDefinition.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(iDefinition.TypeParameters.Single(), NullableAnnotation.Annotated))); 115888var c2 = cDefinition.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(cDefinition.TypeParameters.Single(), NullableAnnotation.NotAnnotated))); 115900var i2b = i2.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(iDefinition.TypeParameters.Single(), NullableAnnotation.Annotated))); 115905var i2c = i2.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(i2.TypeParameters.Single(), NullableAnnotation.Annotated))); 115909var c3 = cDefinition.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(cDefinition.TypeParameters.Single(), NullableAnnotation.Annotated))); 115914var i3b = i3.Construct(ImmutableArray.Create(TypeWithAnnotations.Create(i3.TypeParameters.Single(), NullableAnnotation.Annotated))); 126876private static readonly NullableAnnotation[] s_AllNullableAnnotations = ((NullableAnnotation[])Enum.GetValues(typeof(NullableAnnotation))).Where(n => n != NullableAnnotation.Ignored).ToArray(); 126882var inputs = new[] { NullableAnnotation.Annotated, NullableAnnotation.Oblivious, NullableAnnotation.NotAnnotated }; 126883Func<int, int, NullableAnnotation> getResult = (i, j) => NullableAnnotationExtensions.Join(inputs[i], inputs[j]); 126885var expected = new NullableAnnotation[3, 3] 126887{ NullableAnnotation.Annotated, NullableAnnotation.Annotated, NullableAnnotation.Annotated }, 126888{ NullableAnnotation.Annotated, NullableAnnotation.Oblivious, NullableAnnotation.Oblivious }, 126889{ NullableAnnotation.Annotated, NullableAnnotation.Oblivious, NullableAnnotation.NotAnnotated }, 126914var inputs = new[] { NullableAnnotation.Annotated, NullableAnnotation.Oblivious, NullableAnnotation.NotAnnotated }; 126915Func<int, int, NullableAnnotation> getResult = (i, j) => NullableAnnotationExtensions.Meet(inputs[i], inputs[j]); 126917var expected = new NullableAnnotation[3, 3] 126919{ NullableAnnotation.Annotated, NullableAnnotation.Oblivious, NullableAnnotation.NotAnnotated }, 126920{ NullableAnnotation.Oblivious, NullableAnnotation.Oblivious, NullableAnnotation.NotAnnotated }, 126921{ NullableAnnotation.NotAnnotated, NullableAnnotation.NotAnnotated, NullableAnnotation.NotAnnotated }, 126945var inputs = new[] { NullableAnnotation.Annotated, NullableAnnotation.Oblivious, NullableAnnotation.NotAnnotated }; 126946Func<int, int, NullableAnnotation> getResult = (i, j) => NullableAnnotationExtensions.EnsureCompatible(inputs[i], inputs[j]); 126948var expected = new NullableAnnotation[3, 3] 126950{ NullableAnnotation.Annotated, NullableAnnotation.Annotated, NullableAnnotation.NotAnnotated }, 126951{ NullableAnnotation.Annotated, NullableAnnotation.Oblivious, NullableAnnotation.NotAnnotated }, 126952{ NullableAnnotation.NotAnnotated, NullableAnnotation.NotAnnotated, NullableAnnotation.NotAnnotated }, 126958private static void AssertEqual(NullableAnnotation[,] expected, Func<int, int, NullableAnnotation> getResult, int size) 126960AssertEx.Equal<NullableAnnotation>(expected, getResult, (na1, na2) => na1 == na2, na => $"NullableAnnotation.{na}", "{0,-32:G}", size); 126971foreach (var a in s_AllNullableAnnotations) 126973foreach (var b in s_AllNullableAnnotations) 126997foreach (var a in s_AllNullableAnnotations) 126999foreach (var b in s_AllNullableAnnotations) 127001foreach (var c in s_AllNullableAnnotations) 127003var leftFirst = a.Join(b).Join(c); 127004var rightFirst = a.Join(b.Join(c)); 127031foreach (var a in s_AllNullableAnnotations) 127033foreach (var b in s_AllNullableAnnotations) 127035foreach (var c in s_AllNullableAnnotations) 127037var leftFirst = a.Meet(b).Meet(c); 127038var rightFirst = a.Meet(b.Meet(c)); 127066foreach (var a in s_AllNullableAnnotations) 127068foreach (var b in s_AllNullableAnnotations) 127070foreach (var c in s_AllNullableAnnotations) 127074var leftFirst = a.EnsureCompatible(b).EnsureCompatible(c); 127075var rightFirst = a.EnsureCompatible(b.EnsureCompatible(c)); 127086foreach (var a in s_AllNullableAnnotations) 127088foreach (var b in s_AllNullableAnnotations) 127090var leftFirst = a.Join(b); 127091var rightFirst = b.Join(a); 127115foreach (var a in s_AllNullableAnnotations) 127117foreach (var b in s_AllNullableAnnotations) 127119var leftFirst = a.Meet(b); 127120var rightFirst = b.Meet(a); 127143foreach (var a in s_AllNullableAnnotations) 127145foreach (var b in s_AllNullableAnnotations) 127147var leftFirst = a.EnsureCompatible(b); 127148var rightFirst = b.EnsureCompatible(a); 138292Assert.Equal(NullableAnnotation.NotAnnotated, interfaces[0].TypeArgumentsWithAnnotationsNoUseSiteDiagnostics.Single().NullableAnnotation); 138294Assert.Equal(NullableAnnotation.Oblivious, interfaces[1].TypeArgumentsWithAnnotationsNoUseSiteDiagnostics.Single().NullableAnnotation); 139464Assert.True(dGoo.Parameters[0].TypeWithAnnotations.NullableAnnotation == NullableAnnotation.Annotated); 139492Assert.Equal(NullableAnnotation.Annotated, c2Goo.Parameters[0].TypeWithAnnotations.NullableAnnotation); 139520Assert.Equal(NullableAnnotation.Annotated, ((ArrayTypeSymbol)c2Goo.Parameters[0].Type).ElementTypeWithAnnotations.NullableAnnotation); 139550Assert.Equal(NullableAnnotation.NotAnnotated, tuple.TupleElements[0].TypeWithAnnotations.NullableAnnotation); 139552Assert.Equal(NullableAnnotation.Annotated, tuple.TupleElements[1].TypeWithAnnotations.NullableAnnotation); 139580Assert.Equal(NullableAnnotation.Annotated, c2Goo.ReturnTypeWithAnnotations.NullableAnnotation); 139608Assert.Equal(NullableAnnotation.Annotated, ((ArrayTypeSymbol)c2Goo.ReturnType).ElementTypeWithAnnotations.NullableAnnotation); 139638Assert.Equal(NullableAnnotation.NotAnnotated, tuple.TupleElements[0].TypeWithAnnotations.NullableAnnotation); 139640Assert.Equal(NullableAnnotation.Annotated, tuple.TupleElements[1].TypeWithAnnotations.NullableAnnotation); 139663Assert.Equal(NullableAnnotation.Annotated, dGoo.Parameters[0].TypeWithAnnotations.NullableAnnotation); 139686Assert.Equal(NullableAnnotation.Annotated, ((ArrayTypeSymbol)dGoo.Parameters[0].Type).ElementTypeWithAnnotations.NullableAnnotation); 139711Assert.Equal(NullableAnnotation.NotAnnotated, tuple.TupleElements[0].TypeWithAnnotations.NullableAnnotation); 139713Assert.Equal(NullableAnnotation.Annotated, tuple.TupleElements[1].TypeWithAnnotations.NullableAnnotation); 139736Assert.Equal(NullableAnnotation.Annotated, dGoo.ReturnTypeWithAnnotations.NullableAnnotation); 139759Assert.Equal(NullableAnnotation.Annotated, ((ArrayTypeSymbol)dGoo.ReturnType).ElementTypeWithAnnotations.NullableAnnotation); 139784Assert.Equal(NullableAnnotation.NotAnnotated, tuple.TupleElements[0].TypeWithAnnotations.NullableAnnotation); 139786Assert.Equal(NullableAnnotation.Annotated, tuple.TupleElements[1].TypeWithAnnotations.NullableAnnotation); 139811Assert.Equal(NullableAnnotation.Annotated, dGoo.ReturnTypeWithAnnotations.NullableAnnotation); 139817Assert.Equal(NullableAnnotation.Annotated, tuple.TupleElements[0].TypeWithAnnotations.NullableAnnotation); 150037Assert.Equal(NullableAnnotation.Annotated, parameterType.NullableAnnotation); 154871VerifyVariableAnnotation(model, locals[0], "T? t1", NullableAnnotation.Annotated); 154872VerifyVariableAnnotation(model, locals[1], "T? t2", NullableAnnotation.Annotated); 154873VerifyVariableAnnotation(model, locals[2], "T? t3", NullableAnnotation.Annotated); 154874VerifyVariableAnnotation(model, locals[3], "T? t4", NullableAnnotation.Annotated); 154875VerifyVariableAnnotation(model, locals[4], "T? t5", NullableAnnotation.Annotated); 154940VerifyVariableAnnotation(model, locals[0], "T? y1", NullableAnnotation.Annotated); 154941VerifyVariableAnnotation(model, locals[1], "T? y2", NullableAnnotation.Annotated); 154942VerifyVariableAnnotation(model, locals[2], "T? y3", NullableAnnotation.Annotated); 154943VerifyVariableAnnotation(model, locals[3], "T? y4", NullableAnnotation.Annotated); 154944VerifyVariableAnnotation(model, locals[4], "U? y5", NullableAnnotation.Annotated); 154947private static void VerifyVariableAnnotation(SemanticModel model, VariableDeclaratorSyntax syntax, string expectedDisplay, NullableAnnotation expectedAnnotation) 154952(expectedAnnotation == NullableAnnotation.Annotated) ? CodeAnalysis.NullableAnnotation.Annotated : CodeAnalysis.NullableAnnotation.NotAnnotated,
Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests (6)
Symbols\PartialPropertiesTests.cs (3)
1680Assert.Equal(NullableAnnotation.NotAnnotated, p1.TypeWithAnnotations.NullableAnnotation); 1684Assert.Equal(NullableAnnotation.Annotated, p2.TypeWithAnnotations.NullableAnnotation); 1688Assert.Equal(NullableAnnotation.Oblivious, p3.TypeWithAnnotations.NullableAnnotation);
Symbols\Source\UpdatedContainingSymbolAndNullableAnntotationTests.cs (3)
43var wrappedLocal1 = UpdatedContainingSymbolAndNullableAnnotationLocal.CreateForTest(local1, m2, TypeWithAnnotations.Create(local1.Type, NullableAnnotation.Annotated)); 44var wrappedLocal1a = UpdatedContainingSymbolAndNullableAnnotationLocal.CreateForTest(local1, m2, TypeWithAnnotations.Create(local1.Type, NullableAnnotation.Annotated)); 45var wrappedLocal2 = UpdatedContainingSymbolAndNullableAnnotationLocal.CreateForTest(local2, m2, TypeWithAnnotations.Create(local1.Type, NullableAnnotation.NotAnnotated));
Microsoft.CodeAnalysis.CSharp.Test.Utilities (1)
UsesIsNullableVisitor.cs (1)
158return (type.NullableAnnotation != NullableAnnotation.Oblivious && typeSymbol.IsReferenceType && !typeSymbol.IsErrorType()) ||