Merge pull request #5636 from BrzVlad/fix-xmm-scan
[mono.git] / mcs / tests / gtest-564.cs
1 using System;
2
3 struct S
4 {
5 }
6
7 abstract class B1<T1, T2>
8 {
9         public abstract void Test<U> (U x) where U : struct, T1, T2;
10 }
11
12 abstract class B2<T1, T2>
13 {
14         public abstract void Test<U> (U x) where U : class, T1, T2;
15 }
16
17 class C1 : B1<S, ValueType>
18 {
19         public override void Test<U> (U x)
20         {
21         }
22 }
23
24 class C2 : B2<string, object>
25 {
26         public override void Test<U> (U x)
27         {
28         }
29 }
30
31 class Test
32 {
33         public static int Main ()
34         {
35                 var m = typeof (C1).GetMethod ("Test");
36                 var ta = m.GetGenericArguments ()[0].GetGenericParameterConstraints ();
37                 if (ta.Length != 2)
38                         return 1;
39                 
40                 m = typeof (C2).GetMethod ("Test");
41                 ta = m.GetGenericArguments ()[0].GetGenericParameterConstraints ();
42                 if (ta.Length != 1)
43                         return 2;
44
45                 Console.WriteLine ("ok");
46                 return 0;
47         }
48 }