add ISafeSerializationData
[mcs.git] / tests / gtest-274.cs
blobbaa4e39536d05d44bf9663031e049dbd811df01f
1 using System;
3 public struct Foo
5 public readonly long Value;
7 public Foo (long value)
9 this.Value = value;
12 public static implicit operator Foo (long value)
14 return new Foo (value);
18 public struct Bar
20 public readonly Foo Foo;
22 public Bar (Foo foo)
24 this.Foo = foo;
27 public static implicit operator Bar (Foo foo)
29 return new Bar (foo);
33 public struct Baz
35 public readonly Foo Foo;
37 public Baz (Foo foo)
39 this.Foo = foo;
42 public static explicit operator Baz (Foo foo)
44 return new Baz (foo);
48 class X
50 static void Main ()
52 int a = 3;
53 int? b = a;
54 int? b0 = null;
56 Foo? f1 = a;
57 Foo? f2 = b;
58 Foo? f3 = b0;
59 Foo f4 = (Foo) b;
61 Bar? b1 = f1;
62 Bar? b2 = f2;
63 Bar? b3 = f3;
64 Bar b4 = (Bar) f2;
66 Baz? z1 = (Baz?) f1;
67 Baz? z2 = (Baz?) f2;
68 Baz? z3 = (Baz?) f3;
69 Baz z4 = (Baz) f2;