Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mcs / tests / test-507.cs
1 using System;
2 using System.Reflection;
3
4 namespace NewslotVirtualFinal
5 {
6         internal interface INewslotVirtualFinal
7         {
8                 void SomeMethod();
9                 void SomeMethod2();
10         }
11
12         internal class NewslotVirtualFinal : INewslotVirtualFinal
13         {
14                 private NewslotVirtualFinal()
15                 {
16                 }
17
18                 public void SomeMethod()
19                 {
20                 }
21
22                 public virtual void SomeMethod2()
23                 {
24                 }
25         }
26         
27         class C
28         {
29                 public static int Main ()
30                 {
31                         Type t = typeof (NewslotVirtualFinal);
32                         MethodInfo mi = t.GetMethod ("SomeMethod");
33                         if (mi.Attributes != (MethodAttributes.PrivateScope | MethodAttributes.Public | MethodAttributes.Final | MethodAttributes.Virtual | MethodAttributes.HideBySig | MethodAttributes.VtableLayoutMask))
34                                 return 1;
35                         
36                         mi = t.GetMethod ("SomeMethod2");
37                         if (mi.Attributes != (MethodAttributes.PrivateScope | MethodAttributes.Public | MethodAttributes.Virtual | MethodAttributes.HideBySig | MethodAttributes.VtableLayoutMask))
38                                 return 2;
39                         
40                         Console.WriteLine ("OK");
41                         return 0;
42                 }
43         }
44 }