Skip to content

Commit 55bb3ee

Browse files
committed
Add tests for generic struct
1 parent e22d23c commit 55bb3ee

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -861,6 +861,15 @@ public static IEnumerable<object[]> NestedGenericsReturnParameterData()
861861
// public IEnumerable<Tuple<Tuple<string, object?>, int>?> MethodReturnsEnumerableNonTupleNonNonNullTupleNonNullNon() => null!;
862862
yield return new object[] { "MethodReturnsEnumerableNonTupleNonNonNullTupleNonNullNon",
863863
NullabilityState.NotNull, NullabilityState.NotNull, NullabilityState.NotNull, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.Nullable };
864+
// public IEnumerable<GenericStruct<Tuple<string, object?>?, int>?>? MethodReturnsEnumerableNullStructNullNonNonTupleNonNullNull() => null;
865+
yield return new object[] { "MethodReturnsEnumerableNullStructNullNonNullTupleNonNullNull",
866+
NullabilityState.Nullable, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.Nullable };
867+
// public IEnumerable<Tuple<GenericStruct<string, object?>?, int>?>? MethodReturnsEnumerableNullTupleNullNonNullStructNonNullNull() => null;
868+
yield return new object[] { "MethodReturnsEnumerableNullTupleNullNonNullStructNonNullNull",
869+
NullabilityState.Nullable, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.Nullable };
870+
// public IEnumerable<(GenericStruct<string, object?> str, int? count)> MethodReturnsEnumerableNonValueTupleNonNullNonTupleNonNullNon() => null!;
871+
yield return new object[] { "MethodReturnsEnumerableNonValueTupleNonNullNonStructNonNullNon",
872+
NullabilityState.NotNull, NullabilityState.NotNull, NullabilityState.Nullable, NullabilityState.NotNull, NullabilityState.NotNull, NullabilityState.Nullable };
864873
}
865874

866875
[Theory]
@@ -1072,12 +1081,17 @@ public void MethodParametersUnknown(string s, IDictionary<Type, string[]> dict)
10721081
public IEnumerable<Tuple<(string name, object? value), int>?> MethodReturnsEnumerableNonTupleNonNonNullValueTupleNonNullNon() => null!;
10731082
public IEnumerable<Tuple<(string? name, object value)?, int>?>? MethodReturnsEnumerableNullTupleNullNonNullValueTupleNullNonNull() => null!;
10741083
public IEnumerable<Tuple<Tuple<string, object?>, int>?> MethodReturnsEnumerableNonTupleNonNonNullTupleNonNullNon() => null!;
1084+
public IEnumerable<GenericStruct<Tuple<string, object?>?, int>?>? MethodReturnsEnumerableNullStructNullNonNullTupleNonNullNull() => null;
1085+
public IEnumerable<Tuple<GenericStruct<string, object?>?, int>?>? MethodReturnsEnumerableNullTupleNullNonNullStructNonNullNull() => null;
1086+
public IEnumerable<(GenericStruct<string, object?> str, int? count)> MethodReturnsEnumerableNonValueTupleNonNullNonStructNonNullNon() => null!;
10751087
public void MethodNullNonNullNonNon(string? s, IDictionary<Type, string?[]> dict) { }
10761088
public void MethodNonNullNonNullNotNull(string s, [NotNull] IDictionary<Type, string[]?>? dict) { dict = new Dictionary<Type, string[]?>(); }
10771089
public void MethodNullNonNullNullNon(string? s, IDictionary<Type, string?[]?> dict) { }
10781090
public void MethodAllowNullNonNonNonNull([AllowNull] string s, IDictionary<Type, string[]>? dict) { }
10791091
}
10801092

1093+
public struct GenericStruct<T, Y> { }
1094+
10811095
internal class GenericTest<T>
10821096
{
10831097
#nullable disable

0 commit comments

Comments
 (0)