Lazily nit mono_class_setup_supertypes correctly.
[mono-project.git] / mcs / tests / gtest-544.cs
blob98c2c85c01b0cd9f307e4f526d4b8ccf721a071b
1 using System;
3 public abstract class A<T>
5 public abstract G Foo<G> () where G : T;
7 public virtual G Foo2<G> () where G : T
9 return default (G);
13 public class B : A<int?>
15 public override G Foo<G> ()
17 return new G ();
20 public override G Foo2<G> ()
22 return base.Foo2<G> ();
26 abstract class A2<T>
28 public abstract void Foo<U> () where U : struct, T;
31 class B2 : A2<System.ValueType>
33 public override void Foo<Y> ()
38 class Program
40 public static int Main ()
42 var b = new B ();
43 if (b.Foo<int?> () == null)
44 return 0;
46 b.Foo2<int?> ();
48 var b2 = new B2 ();
49 b2.Foo<byte> ();
51 return 1;