Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mcs/tests
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2017-12-22 02:49:48 +0300
committerBernhard Urban <bernhard.urban@xamarin.com>2017-12-22 17:31:45 +0300
commit6e885dec43b2e275822e9372412a7077287fd484 (patch)
tree8d7e7917ca6a65dc6d674d40d320aba8a51344e8 /mcs/tests
parent492f66c60f7ca3bb7b88b231e2d8f42f8347f1ee (diff)
[mcs] Support implicit user conversion from nullable type without unwrapping. Fixes #60900
Diffstat (limited to 'mcs/tests')
-rw-r--r--mcs/tests/gtest-647.cs34
-rw-r--r--mcs/tests/ver-il-net_4_x.xml19
2 files changed, 51 insertions, 2 deletions
diff --git a/mcs/tests/gtest-647.cs b/mcs/tests/gtest-647.cs
new file mode 100644
index 00000000000..4aae641f85f
--- /dev/null
+++ b/mcs/tests/gtest-647.cs
@@ -0,0 +1,34 @@
+using System;
+
+public class Program
+{
+ public static int Main ()
+ {
+ int B = default (MyStruct?);
+ if (MyStruct.counter != 1)
+ return 1;
+
+ switch (default (MyStruct?)) {
+ case 0:
+ break;
+ default:
+ return 2;
+ }
+
+ if (MyStruct.counter != 2)
+ return 4;
+
+ return 0;
+ }
+
+ public struct MyStruct
+ {
+ public static int counter;
+
+ public static implicit operator int (MyStruct? s)
+ {
+ ++counter;
+ return 0;
+ }
+ }
+} \ No newline at end of file
diff --git a/mcs/tests/ver-il-net_4_x.xml b/mcs/tests/ver-il-net_4_x.xml
index e4156fbdb05..d57416d8e0b 100644
--- a/mcs/tests/ver-il-net_4_x.xml
+++ b/mcs/tests/ver-il-net_4_x.xml
@@ -11064,7 +11064,7 @@
</type>
<type name="X">
<method name="Int32 Beer(System.Nullable`1[IrishPub])" attrs="145">
- <size>72</size>
+ <size>60</size>
</method>
<method name="Int32 Test(System.Nullable`1[System.Int32])" attrs="145">
<size>62</size>
@@ -19508,7 +19508,7 @@
</type>
<type name="C">
<method name="Int32 Main()" attrs="150">
- <size>267</size>
+ <size>255</size>
</method>
<method name="Void .ctor()" attrs="6278">
<size>7</size>
@@ -20147,6 +20147,21 @@
</method>
</type>
</test>
+ <test name="gtest-647.cs">
+ <type name="Program">
+ <method name="Int32 Main()" attrs="150">
+ <size>99</size>
+ </method>
+ <method name="Void .ctor()" attrs="6278">
+ <size>7</size>
+ </method>
+ </type>
+ <type name="Program+MyStruct">
+ <method name="Int32 op_Implicit(System.Nullable`1[Program+MyStruct])" attrs="2198">
+ <size>22</size>
+ </method>
+ </type>
+ </test>
<test name="gtest-anontype-01.cs">
<type name="Test">
<method name="Int32 Main()" attrs="150">