From: Vladimir Sadov Date: Sun, 6 Oct 2019 22:39:00 +0000 (-0700) Subject: Added a test scenario to verify that Nullable is not assignable from T (dotnet... X-Git-Tag: submit/tizen/20210909.063632~11031^2~354 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ad56d900ed803088c444d271411d884bba280832;p=platform%2Fupstream%2Fdotnet%2Fruntime.git Added a test scenario to verify that Nullable is not assignable from T (dotnet/corefx#41577) * Added a test scenario to verify that T is not assignable to Nullable * PR feedback. Replaced `var` with concrete `Type`. Commit migrated from https://github.com/dotnet/corefx/commit/38aa9151607cb63bb569beb42880057ba2cd3da0 --- diff --git a/src/libraries/System.Reflection/tests/TypeInfoTests.cs b/src/libraries/System.Reflection/tests/TypeInfoTests.cs index 990cf9d..76989f6 100644 --- a/src/libraries/System.Reflection/tests/TypeInfoTests.cs +++ b/src/libraries/System.Reflection/tests/TypeInfoTests.cs @@ -574,6 +574,33 @@ namespace System.Reflection.Tests Assert.Equal(expected, type.GetTypeInfo().IsAssignableFrom(c?.GetTypeInfo())); } + [Fact] + public void IsAssignableFromNullable() + { + Type nubInt = typeof(Nullable); + Type intType = typeof(int); + Type objType = typeof(object); + Type valTypeType = typeof(ValueType); + + // sanity checks + // Nullable is assignable from int + Assert.True(nubInt.IsAssignableFrom(intType)); + Assert.False(intType.IsAssignableFrom(nubInt)); + + Type nubOfT = nubInt.GetGenericTypeDefinition(); + Type T = nubOfT.GetTypeInfo().GenericTypeParameters[0]; + + // should be true + Assert.True(T.IsAssignableFrom(T)); + Assert.True(objType.IsAssignableFrom(T)); + Assert.True(valTypeType.IsAssignableFrom(T)); + + // should be false + // Nullable is not assignable from T + Assert.False(nubOfT.IsAssignableFrom(T)); + Assert.False(T.IsAssignableFrom(nubOfT)); + } + public static IEnumerable IsEquivilentTo_TestData() { yield return new object[] { typeof(string), typeof(string), true };