+2009-08-24 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * load-exceptions.cs:
+ * load-missing.il: Test for invalid method overrides.
+
2009-08-19 Rodrigo Kumpera <rkumpera@novell.com>
* constraints-load.il: New test for errors related to loading
return 0;
}
+ public static int test_0_bad_method_override1 ()
+ {
+ try {
+ BadOverridesDriver.bad_override1 ();
+ return 1;
+ } catch (TypeLoadException) {}
+ return 0;
+ }
+
+ public static int test_0_bad_method_override2 ()
+ {
+ try {
+ BadOverridesDriver.bad_override2 ();
+ return 1;
+ } catch (TypeLoadException) {}
+ return 0;
+ }
public static void missing_outer () {
new Missing.Foo1.InnerFoo ();
} // end of method CCtorClass::foo \r
\r
} // end of class CCtorClass\r
+\r
+.class interface public auto ansi abstract TestIface\r
+{\r
+ .method public virtual hidebysig newslot abstract instance default int32 foo () cil managed {}\r
+}\r
+\r
+.class public auto ansi beforefieldinit BadMethodOverride1\r
+{\r
+ .method public virtual virtual newslot default int32 foo ()\r
+ {\r
+ .override class TestIface::foo\r
+ ldc.i4.0\r
+ ret\r
+ }\r
+\r
+ .method public hidebysig specialname rtspecialname instance default void '.ctor' () cil managed \r
+ {\r
+ ldarg.0 \r
+ call instance void object::'.ctor'() \r
+ ret \r
+ }\r
+}\r
+\r
+.class public auto ansi beforefieldinit RandomBaseClass\r
+{\r
+ .method public virtual virtual newslot default int32 foo ()\r
+ {\r
+ ldc.i4.0\r
+ ret\r
+ }\r
+\r
+ .method public hidebysig specialname rtspecialname instance default void '.ctor' () cil managed \r
+ {\r
+ ldarg.0 \r
+ call instance void object::'.ctor'() \r
+ ret \r
+ }\r
+}\r
+\r
+.class public auto ansi beforefieldinit BadMethodOverride2\r
+{\r
+ .method public virtual virtual newslot default int32 foo ()\r
+ {\r
+ .override class RandomBaseClass::foo\r
+ ldc.i4.0\r
+ ret\r
+ }\r
+\r
+ .method public hidebysig specialname rtspecialname instance default void '.ctor' () cil managed \r
+ {\r
+ ldarg.0 \r
+ call instance void object::'.ctor'() \r
+ ret \r
+ }\r
+}\r
+\r
+.class public auto ansi beforefieldinit BadOverridesDriver\r
+{\r
+ .method public static void bad_override1 ()\r
+ {\r
+ newobj instance void BadMethodOverride1::.ctor()\r
+ pop\r
+ ret\r
+ }\r
+\r
+ .method public static void bad_override2 ()\r
+ {\r
+ newobj instance void BadMethodOverride2::.ctor()\r
+ pop\r
+ ret\r
+ }\r
+\r
+}\r