[jit] Factor out the gsharedvt constrained call handling code into a separate function.
[mono.git] / mono / mini / gshared.cs
index 27149e9085d7a5ee63311e6cac1789caaba04991..d0ee4fac40dcf89a0cfa392493aba69e6847775b 100644 (file)
@@ -944,6 +944,47 @@ public class Tests
                return 0;
        }
 
+       public interface IFace1<T> {
+               void m1 ();
+               void m2 ();
+               void m3 ();
+               void m4 ();
+               void m5 ();
+       }
+
+       public class ClassIFace<T> : IFace1<T> {
+               public void m1 () {
+               }
+               public void m2 () {
+               }
+               public void m3 () {
+               }
+               public void m4 () {
+               }
+               public void m5 () {
+               }
+       }
+
+       interface IFaceIFaceCall {
+               void call<T, T2> (IFace1<object> iface);
+       }
+
+       class MakeIFaceCall : IFaceIFaceCall {
+               public void call<T, T2> (IFace1<object> iface) {
+                       iface.m1 ();
+               }
+       }
+
+       // Check normal interface calls from gsharedvt call to fully instantiated methods
+       public static int test_0_instatiated_iface_call () {
+               ClassIFace<object> c1 = new ClassIFace<object> ();
+
+               IFaceIFaceCall c = new MakeIFaceCall ();
+
+               c.call<object, int> (c1);
+               return 0;
+       }
+
        [MethodImplAttribute (MethodImplOptions.NoInlining)]
        static string to_string<T, T2>(T t, T2 t2) {
                return t.ToString ();