| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 67650a2 commit 29b74c7
3 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -318,6 +318,17 @@ internal static bool ToManagedValue(IntPtr value, Type obType, | |||
| 318 | 318 | return true; | |
| 319 | 319 | } | |
| 320 | 320 | ||
| 321 | + if (obType.IsGenericType && obType.GetGenericTypeDefinition() == typeof(Nullable<>)) | ||
| 322 | + { | ||
| 323 | + if( value == Runtime.PyNone ) | ||
| 324 | + { | ||
| 325 | + result = null; | ||
| 326 | + return true; | ||
| 327 | + } | ||
| 328 | + // Set type to underlying type | ||
| 329 | + obType = obType.GetGenericArguments()[0]; | ||
| 330 | + } | ||
| 331 | + | ||
| 321 | 332 | if (obType.IsArray) | |
| 322 | 333 | { | |
| 323 | 334 | return ToArray(value, obType, out result, setError); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -32,8 +32,14 @@ public ConversionTest() | |||
| 32 | 32 | ||
| 33 | 33 | public byte[] ByteArrayField; | |
| 34 | 34 | public sbyte[] SByteArrayField; | |
| 35 | + | ||
| 36 | + public T? Echo<T>(T? arg) where T: struct { | ||
| 37 | + return arg; | ||
| 38 | + } | ||
| 39 | + | ||
| 35 | 40 | } | |
| 36 | 41 | ||
| 42 | + | ||
| 37 | 43 | ||
| 38 | 44 | public interface ISpam | |
| 39 | 45 | { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -641,6 +641,8 @@ def test_enum_conversion(): | |||
| 641 | 641 | ||
| 642 | 642 | def test_null_conversion(): | |
| 643 | 643 | """Test null conversion.""" | |
| 644 | + import System | ||
| 645 | + | ||
| 644 | 646 | ob = ConversionTest() | |
| 645 | 647 | ||
| 646 | 648 | ob.StringField = None | |
@@ -652,6 +654,10 @@ def test_null_conversion(): | |||
| 652 | 654 | ob.SpamField = None | |
| 653 | 655 | assert ob.SpamField is None | |
| 654 | 656 | ||
| 657 | + pi = 22/7 | ||
| 658 | + assert ob.Echo[System.Double](pi) == pi | ||
| 659 | + assert ob.Echo[System.DateTime](None) is None | ||
| 660 | + | ||
| 655 | 661 | # Primitive types and enums should not be set to null. | |
| 656 | 662 | ||
| 657 | 663 | with pytest.raises(TypeError): | |
| Back | FazBrowse Home | New Git URL |
0 commit comments