[asp.net] Optimize memory usage a bit. String hashes are cached in thread-local storage.
[mono.git] / mcs / tests / gtest-variance-8.cs
1 // Compiler options: -langversion:future
2
3 using System;
4
5 interface IIn<in T>
6 {
7 }
8
9 interface IOut<out T>
10 {
11 }
12
13 class A<T> : IIn<T>, IOut<T>
14 {
15 }
16
17 class C
18 {
19         public static int Main ()
20         {
21                 IIn<string> a_string = new A<string> ();
22                 IIn<object> a_object = new A<object> ();
23
24                 if (!(a_string is IIn<string>))
25                         return 1;
26                 
27                 if ((a_string is IIn<object>))
28                         return 2;
29                 
30                 if (!(a_object is IIn<string>))
31                         return 3;
32                 
33                 if (!(a_object is IIn<object>))
34                         return 4;
35
36                 IOut<string> b_string = new A<string> ();
37                 IOut<object> b_object = new A<object> ();
38
39                 if (!(b_string is IOut<string>))
40                         return 10;
41                 
42                 if (!(b_string is IOut<object>))
43                         return 11;
44                 
45                 if (b_object is IOut<string>)
46                         return 12;
47                 
48                 if (!(b_object is IOut<object>))
49                         return 13;
50                 
51                 Console.WriteLine ("OK");
52                 return 0;
53         }
54 }