New test, formerly known as gen-51.cs.
[mono.git] / mcs / errors / gcs0309-3.cs
diff --git a/mcs/errors/gcs0309-3.cs b/mcs/errors/gcs0309-3.cs
new file mode 100644 (file)
index 0000000..2a5bc12
--- /dev/null
@@ -0,0 +1,40 @@
+// CS0309: The type 'B' must be convertible to 'A' in order to use it
+// as parameter 'T' in the generic type or method 'Foo<T>'
+// Line: 35
+using System;
+
+public class Foo<T>
+       where T : A
+{
+       public void Test (T t)
+       {
+               Console.WriteLine (t);
+               Console.WriteLine (t.GetType ());
+               t.Hello ();
+       }
+}
+
+public class A
+{
+       public void Hello ()
+       {
+               Console.WriteLine ("Hello World");
+       }
+}
+
+public class B
+{
+       public static implicit operator A (B b)
+       {
+               return new A ();
+       }
+}
+
+class X
+{
+       Foo<B> b;
+
+       static void Main ()
+       {
+       }
+}