Skip to content

Commit 027ceec

Browse files
committed
Apply feedback
1 parent 55bb3ee commit 027ceec

File tree

2 files changed

+24
-19
lines changed

2 files changed

+24
-19
lines changed

src/libraries/System.Private.CoreLib/src/System/Reflection/NullabilityInfoContext.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ private void CheckGenericParameters(NullabilityInfo nullability, MemberInfo meta
482482
{
483483
NullabilityState state = nullability.ReadState;
484484

485-
if (!ParseNullableState(metaType.GetCustomAttributesData(), 0, ref state))
485+
if (state == NullabilityState.NotNull && !ParseNullableState(metaType.GetCustomAttributesData(), 0, ref state))
486486
{
487487
state = GetNullableContext(metaType);
488488
}

src/libraries/System.Runtime/tests/System/Reflection/NullabilityInfoContextTests.cs

+23-18
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public static IEnumerable<object[]> ArrayPropertyTestData()
121121
}
122122

123123
[Theory]
124-
[SkipOnMono("Disabling NullablePublicOnly feature not work for Mono tests")]
124+
[SkipOnMono("Nullability attributes trimmed on Mono")]
125125
[MemberData(nameof(ArrayPropertyTestData))]
126126
public void ArrayPropertyTest(string propertyName, NullabilityState elementState, NullabilityState propertyState)
127127
{
@@ -143,7 +143,7 @@ public static IEnumerable<object[]> GenericArrayPropertyTestData()
143143
}
144144

145145
[Theory]
146-
[SkipOnMono("Disabling NullablePublicOnly feature not work for Mono tests")]
146+
[SkipOnMono("Nullability attributes trimmed on Mono")]
147147
[MemberData(nameof(GenericArrayPropertyTestData))]
148148
public void GenericArrayPropertyTest(string propertyName, NullabilityState elementState, NullabilityState propertyState)
149149
{
@@ -167,7 +167,7 @@ public static IEnumerable<object[]> JaggedArrayPropertyTestData()
167167
}
168168

169169
[Theory]
170-
[SkipOnMono("Disabling NullablePublicOnly feature not work for Mono tests")]
170+
[SkipOnMono("Nullability attributes trimmed on Mono")]
171171
[MemberData(nameof(JaggedArrayPropertyTestData))]
172172
public void JaggedArrayPropertyTest(string propertyName, NullabilityState innermodtElementState, NullabilityState elementState, NullabilityState propertyState)
173173
{
@@ -192,7 +192,7 @@ public static IEnumerable<object[]> TuplePropertyTestData()
192192
}
193193

194194
[Theory]
195-
[SkipOnMono("Disabling NullablePublicOnly feature not work for Mono tests")]
195+
[SkipOnMono("Nullability attributes trimmed on Mono")]
196196
[MemberData(nameof(TuplePropertyTestData))]
197197
public void TuplePropertyTest(string propertyName, NullabilityState genericParam1, NullabilityState genericParam2, NullabilityState genericParam3, NullabilityState propertyState)
198198
{
@@ -217,7 +217,7 @@ public static IEnumerable<object[]> GenericTuplePropertyTestData()
217217
}
218218

219219
[Theory]
220-
[SkipOnMono("Disabling NullablePublicOnly feature not work for Mono tests")]
220+
[SkipOnMono("Nullability attributes trimmed on Mono")]
221221
[MemberData(nameof(GenericTuplePropertyTestData))]
222222
public void GenericTuplePropertyTest(string propertyName, NullabilityState genericParam1, NullabilityState genericParam2, NullabilityState genericParam3, NullabilityState propertyState)
223223
{
@@ -243,7 +243,7 @@ public static IEnumerable<object[]> DictionaryPropertyTestData()
243243
}
244244

245245
[Theory]
246-
[SkipOnMono("Disabling NullablePublicOnly feature not work for Mono tests")]
246+
[SkipOnMono("Nullability attributes trimmed on Mono")]
247247
[MemberData(nameof(DictionaryPropertyTestData))]
248248
public void DictionaryPropertyTest(string propertyName, NullabilityState keyState, NullabilityState valueElement, NullabilityState valueState, NullabilityState propertyState)
249249
{
@@ -269,7 +269,7 @@ public static IEnumerable<object[]> GenericDictionaryPropertyTestData()
269269
}
270270

271271
[Theory]
272-
[SkipOnMono("Disabling NullablePublicOnly feature not work for Mono tests")]
272+
[SkipOnMono("Nullability attributes trimmed on Mono")]
273273
[MemberData(nameof(GenericDictionaryPropertyTestData))]
274274
public void GenericDictionaryPropertyTest(string propertyName, NullabilityState keyState, NullabilityState valueElement, NullabilityState valueState, NullabilityState propertyState)
275275
{
@@ -435,7 +435,7 @@ public void GenericFieldNullableValueTypeTest(string fieldName, NullabilityState
435435

436436
public static IEnumerable<object[]> GenericNotnullConstraintFieldsTestData()
437437
{
438-
yield return new object[] { "FieldNullable", NullabilityState.NotNull, NullabilityState.NotNull, typeof(string) };
438+
yield return new object[] { "FieldNullable", NullabilityState.Nullable, NullabilityState.Nullable, typeof(string) };
439439
yield return new object[] { "FieldUnknown", NullabilityState.Unknown, NullabilityState.Unknown, typeof(string) };
440440
yield return new object[] { "FieldNullableEnabled", NullabilityState.NotNull, NullabilityState.NotNull, typeof(string) };
441441
}
@@ -453,7 +453,7 @@ public void GenericNotNullConstraintFieldsTest(string fieldName, NullabilityStat
453453

454454
public static IEnumerable<object[]> GenericNotnullConstraintPropertiesTestData()
455455
{
456-
yield return new object[] { "PropertyNullable", NullabilityState.NotNull, NullabilityState.NotNull, typeof(string) };
456+
yield return new object[] { "PropertyNullable", NullabilityState.Nullable, NullabilityState.Nullable, typeof(string) };
457457
yield return new object[] { "PropertyUnknown", NullabilityState.Unknown, NullabilityState.Unknown, typeof(string) };
458458
yield return new object[] { "PropertyNullableEnabled", NullabilityState.NotNull, NullabilityState.NotNull, typeof(string) };
459459
}
@@ -462,8 +462,8 @@ public static IEnumerable<object[]> GenericNotnullConstraintPropertiesTestData()
462462
[MemberData(nameof(GenericNotnullConstraintPropertiesTestData))]
463463
public void GenericNotNullConstraintPropertiesTest(string propertyName, NullabilityState readState, NullabilityState writeState, Type type)
464464
{
465-
PropertyInfo field = typeof(GenericTestConstrainedNotNull<string>).GetProperty(propertyName, flags)!;
466-
NullabilityInfo nullability = nullabilityContext.Create(field);
465+
PropertyInfo property = typeof(GenericTestConstrainedNotNull<string>).GetProperty(propertyName, flags)!;
466+
NullabilityInfo nullability = nullabilityContext.Create(property);
467467
Assert.Equal(readState, nullability.ReadState);
468468
Assert.Equal(writeState, nullability.WriteState);
469469
Assert.Equal(type, nullability.Type);
@@ -498,8 +498,8 @@ public static IEnumerable<object[]> GenericStructConstraintPropertiesTestData()
498498
[MemberData(nameof(GenericStructConstraintPropertiesTestData))]
499499
public void GenericStructConstraintPropertiesTest(string propertyName, NullabilityState readState, NullabilityState writeState, Type type)
500500
{
501-
PropertyInfo field = typeof(GenericTestConstrainedStruct<int>).GetProperty(propertyName, flags)!;
502-
NullabilityInfo nullability = nullabilityContext.Create(field);
501+
PropertyInfo property = typeof(GenericTestConstrainedStruct<int>).GetProperty(propertyName, flags)!;
502+
NullabilityInfo nullability = nullabilityContext.Create(property);
503503
Assert.Equal(readState, nullability.ReadState);
504504
Assert.Equal(writeState, nullability.WriteState);
505505
Assert.Equal(type, nullability.Type);
@@ -580,7 +580,7 @@ public static IEnumerable<object[]> MethodReturnParameterTestData()
580580
}
581581

582582
[Theory]
583-
[SkipOnMono("Disabling NullablePublicOnly feature not work for Mono tests")]
583+
[SkipOnMono("Nullability attributes trimmed on Mono")]
584584
[MemberData(nameof(MethodReturnParameterTestData))]
585585
public void MethodReturnParameterTest(string methodName, NullabilityState elementState, NullabilityState readState)
586586
{
@@ -606,7 +606,7 @@ public static IEnumerable<object[]> MethodReturnsTupleTestData()
606606
}
607607

608608
[Theory]
609-
[SkipOnMono("Disabling NullablePublicOnly feature not work for Mono tests")]
609+
[SkipOnMono("Nullability attributes trimmed on Mono")]
610610
[MemberData(nameof(MethodReturnsTupleTestData))]
611611
public void MethodReturnsTupleTest(string methodName, NullabilityState param1, NullabilityState param2, NullabilityState readState)
612612
{
@@ -630,7 +630,7 @@ public static IEnumerable<object[]> MethodGenericReturnParameterTestData()
630630
}
631631

632632
[Theory]
633-
[SkipOnMono("Disabling NullablePublicOnly feature not work for Mono tests")]
633+
[SkipOnMono("Nullability attributes trimmed on Mono")]
634634
[MemberData(nameof(MethodGenericReturnParameterTestData))]
635635
public void MethodGenericReturnParameterTest(string methodName, NullabilityState readState, NullabilityState elementState)
636636
{
@@ -653,7 +653,7 @@ public static IEnumerable<object[]> MethodParametersTestData()
653653
}
654654

655655
[Theory]
656-
[SkipOnMono("Disabling NullablePublicOnly feature not work for Mono tests")]
656+
[SkipOnMono("Nullability attributes trimmed on Mono")]
657657
[MemberData(nameof(MethodParametersTestData))]
658658
public void MethodParametersTest(string methodName, NullabilityState stringState, NullabilityState dictKey, NullabilityState dictValueElement, NullabilityState dictValue, NullabilityState dictionaryState)
659659
{
@@ -677,7 +677,7 @@ public static IEnumerable<object[]> MethodGenericParametersTestData()
677677
}
678678

679679
[Theory]
680-
[SkipOnMono("Disabling NullablePublicOnly feature not work for Mono tests")]
680+
[SkipOnMono("Nullability attributes trimmed on Mono")]
681681
[MemberData(nameof(MethodGenericParametersTestData))]
682682
public void MethodGenericParametersTest(string methodName, NullabilityState param1State, NullabilityState dictKey, NullabilityState dictValue, NullabilityState dictionaryState)
683683
{
@@ -855,18 +855,23 @@ public static IEnumerable<object[]> NestedGenericsReturnParameterData()
855855
// public IEnumerable<Tuple<(string name, object? value), int>?> MethodReturnsEnumerableNonTupleNonNonNullValueTupleNonNullNon() => null!;
856856
yield return new object[] { "MethodReturnsEnumerableNonTupleNonNonNullValueTupleNonNullNon",
857857
NullabilityState.NotNull, NullabilityState.NotNull, NullabilityState.NotNull, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.Nullable };
858+
858859
// public IEnumerable<Tuple<(string? name, object value)?, int>?>? MethodReturnsEnumerableNullTupleNullNonNullValueTupleNullNonNull() => null!;
859860
yield return new object[] { "MethodReturnsEnumerableNullTupleNullNonNullValueTupleNullNonNull",
860861
NullabilityState.Nullable, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.Nullable, NullabilityState.Nullable, NullabilityState.NotNull };
862+
861863
// public IEnumerable<Tuple<Tuple<string, object?>, int>?> MethodReturnsEnumerableNonTupleNonNonNullTupleNonNullNon() => null!;
862864
yield return new object[] { "MethodReturnsEnumerableNonTupleNonNonNullTupleNonNullNon",
863865
NullabilityState.NotNull, NullabilityState.NotNull, NullabilityState.NotNull, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.Nullable };
866+
864867
// public IEnumerable<GenericStruct<Tuple<string, object?>?, int>?>? MethodReturnsEnumerableNullStructNullNonNonTupleNonNullNull() => null;
865868
yield return new object[] { "MethodReturnsEnumerableNullStructNullNonNullTupleNonNullNull",
866869
NullabilityState.Nullable, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.Nullable };
870+
867871
// public IEnumerable<Tuple<GenericStruct<string, object?>?, int>?>? MethodReturnsEnumerableNullTupleNullNonNullStructNonNullNull() => null;
868872
yield return new object[] { "MethodReturnsEnumerableNullTupleNullNonNullStructNonNullNull",
869873
NullabilityState.Nullable, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.Nullable };
874+
870875
// public IEnumerable<(GenericStruct<string, object?> str, int? count)> MethodReturnsEnumerableNonValueTupleNonNullNonTupleNonNullNon() => null!;
871876
yield return new object[] { "MethodReturnsEnumerableNonValueTupleNonNullNonStructNonNullNon",
872877
NullabilityState.NotNull, NullabilityState.NotNull, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.NotNull, NullabilityState.Nullable };

0 commit comments

Comments
 (0)