Merge pull request #5675 from mono/glib-debug-symbols
[mono.git] / mcs / tests / test-null-operator-02.cs
index 83cec417b91dbc733fd2e1fe2ba4eb8bf712aa46..c6dfa614d03de0fc1120726c2d5ac379582a73c1 100644 (file)
@@ -2,32 +2,45 @@ using System;
 
 class CI
 {
-    public long Field;
-    public sbyte? FieldNullable;
-    public object FieldReference;
+       public long Field;
+       public sbyte? FieldNullable;
+       public object FieldReference;
 
        public int Prop { get; set; }
-    public byte? PropNullable { get; set; }
-    public string PropReference { get; set; }
+       public byte? PropNullable { get; set; }
+       public object PropReference { get; set; }
 
-    public event Action ev1;
+       public event Action ev1;
 }
 
 class C
 {
-    static int TestProperty ()
-    {
-        CI ci = null;
-        var m1 = ci?.Prop;
-        var m2 = ci?.PropNullable;
-        var m3 = ci?.PropReference;
+       static int TestProperty ()
+       {
+               CI ci = null;
+
+               var m1 = ci?.Prop;
+               var m2 = ci?.PropNullable;
+               var m3 = ci?.PropReference;
+
+               var m4 = ci?.Prop.ToString () ?? "N";
+               if (m4 != "N")
+                       return 1;
+
+               var m5 = ci?.PropNullable.ToString () ?? "N";
+               if (m5 != "N")
+                       return 2;
+
+               var m6 = ci?.PropReference.ToString () ?? "N";
+               if (m6 != "N")
+                       return 3; 
 
 //        ci?.Prop = 6;
 
-        ci = new CI ();
-        m1 = ci?.Prop;
-        m2 = ci?.PropNullable;
-        m3 = ci?.PropReference;
+               ci = new CI ();
+               m1 = ci?.Prop;
+               m2 = ci?.PropNullable;
+               m3 = ci?.PropReference;
 
 //        ci?.Prop = 5;
 //        if (ci.Prop != 5)
@@ -38,22 +51,33 @@ class C
 //      var pp1 = ci?.Prop = 4;
 //      var pp2 = ci?.Prop += 4;
 
-        return 0;
-    }
+               return 0;
+       }
 
-    static int TestField ()
-    {
-        CI ci = null;
-        var m1 = ci?.Field;
-        var m2 = ci?.FieldNullable;
-        var m3 = ci?.FieldReference;
+       static int TestField ()
+       {
+               CI ci = null;
+               var m1 = ci?.Field;
+               var m2 = ci?.FieldNullable;
+               var m3 = ci?.FieldReference;
+               var m4 = ci?.Field.ToString () ?? "N";
+               if (m4 != "N")
+                       return 1;
+
+               var m5 = ci?.FieldNullable.ToString () ?? "N";
+               if (m5 != "N")
+                       return 2;
+
+               var m6 = ci?.FieldReference.ToString () ?? "N";
+               if (m6 != "N")
+                       return 3; 
 
 //        ci?.Field = 6;
 
-        ci = new CI ();
-        m1 = ci?.Field;
-        m2 = ci?.FieldNullable;
-        m3 = ci?.FieldReference;
+               ci = new CI ();
+               m1 = ci?.Field;
+               m2 = ci?.FieldNullable;
+               m3 = ci?.FieldReference;
 
 //        ci?.Field = 5;
 //        if (ci.Field != 5)
@@ -64,37 +88,37 @@ class C
 //      var pp1 = ci?.Field = 4;
 //      var pp2 = ci?.Field += 4;
 
-        return 0;
-    }
-
-    static int TestEvent ()
-    {
-        CI ci = null;
-        ci?.ev1 += null;
-
-        ci = new CI ();
-        ci?.ev1 += null;
-
-        return 0;
-    }
-
-    static int Main ()
-    {
-        int res;
-
-        res = TestProperty ();
-        if (res != 0)
-            return 10 + res;
-
-        res = TestField ();
-        if (res != 0)
-            return 20 + res;
-
-        res = TestEvent ();
-        if (res != 0)
-            return 30 + res;            
-
-       Console.WriteLine ("ok");
-        return 0;
-    }
+               return 0;
+       }
+/*
+       static int TestEvent ()
+       {
+               CI ci = null;
+               ci?.ev1 += null;
+
+               ci = new CI ();
+               ci?.ev1 += null;
+
+               return 0;
+       }
+*/
+       static int Main ()
+       {
+               int res;
+
+               res = TestProperty ();
+               if (res != 0)
+                       return 10 + res;
+
+               res = TestField ();
+               if (res != 0)
+                       return 20 + res;
+
+//             res = TestEvent ();
+//             if (res != 0)
+//                     return 30 + res;            
+
+               Console.WriteLine ("ok");
+               return 0;
+       }
 }
\ No newline at end of file