[LoongArch64] Part-5:add loongarch support in some files for LoongArch64. (#21769)
[mono-project.git] / mcs / tests / gtest-544.cs
blob98dd222721d73aaa6b529eed13b305b9cb0bf487
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 abstract class A3<T>
40 public abstract void Foo<U> () where U : class, T;
43 class B3 : A3<System.Object>
45 public override void Foo<Y> ()
50 class Program
52 public static int Main ()
54 var b = new B ();
55 if (b.Foo<int?> () == null)
56 return 0;
58 b.Foo2<int?> ();
60 var b2 = new B2 ();
61 b2.Foo<byte> ();
63 var b3 = new B3 ();
64 b3.Foo<string> ();
66 return 1;