Author: ankit
Date: 2006-01-14 15:34:07 -0500 (Sat, 14 Jan 2006)
New Revision: 55581
Added:
trunk/mcs/ilasm/tests/test-override-1.il
trunk/mcs/ilasm/tests/test-override-2.il
Modified:
trunk/mcs/ilasm/parser/ChangeLog
trunk/mcs/ilasm/parser/ILParser.jay
trunk/mcs/ilasm/tests/ChangeLog
Log:
In ilasm/tests:
* test-override-1.il:
* test-override-2.il: New. Test for 'full' syntax of specifying
overrides. (.override method ..full sig.. )
In ilasm/parser:
* ILParser.jay (method_decl): Add new "full" syntax specifying
overrides.
Modified: trunk/mcs/ilasm/parser/ChangeLog
===================================================================
--- trunk/mcs/ilasm/parser/ChangeLog 2006-01-14 19:57:17 UTC (rev 55580)
+++ trunk/mcs/ilasm/parser/ChangeLog 2006-01-14 20:34:07 UTC (rev 55581)
@@ -1,3 +1,7 @@
+2006-01-15 Ankit Jain <[EMAIL PROTECTED]>
+
+ * ILParser.jay (method_decl): Add new "full" syntax specifying
overrides.
+
2006-01-13 Ankit Jain <[EMAIL PROTECTED]>
* ILParser.jay: Update to use codegen.GetTypeRef instead of creating
Modified: trunk/mcs/ilasm/parser/ILParser.jay
===================================================================
--- trunk/mcs/ilasm/parser/ILParser.jay 2006-01-14 19:57:17 UTC (rev 55580)
+++ trunk/mcs/ilasm/parser/ILParser.jay 2006-01-14 20:34:07 UTC (rev 55581)
@@ -2019,6 +2019,11 @@
(BaseTypeRef) $2, (string) $4);
}
+ | D_OVERRIDE K_METHOD method_ref
+ {
+ codegen.CurrentTypeDef.AddOverride
(codegen.CurrentMethodDef.Signature,
+ (BaseMethodRef) $3);
+ }
| scope_block
| D_PARAM OPEN_BRACKET int32 CLOSE_BRACKET init_opt
{
Modified: trunk/mcs/ilasm/tests/ChangeLog
===================================================================
--- trunk/mcs/ilasm/tests/ChangeLog 2006-01-14 19:57:17 UTC (rev 55580)
+++ trunk/mcs/ilasm/tests/ChangeLog 2006-01-14 20:34:07 UTC (rev 55581)
@@ -1,3 +1,9 @@
+2006-01-15 Ankit Jain <[EMAIL PROTECTED]>
+
+ * test-override-1.il:
+ * test-override-2.il: New. Test for 'full' syntax of specifying
+ overrides. (.override method ..full sig.. )
+
2006-01-14 Ankit Jain <[EMAIL PROTECTED]>
* gen-instr1.il: New. Test for using GenericParams as operands to
Added: trunk/mcs/ilasm/tests/test-override-1.il
===================================================================
--- trunk/mcs/ilasm/tests/test-override-1.il 2006-01-14 19:57:17 UTC (rev
55580)
+++ trunk/mcs/ilasm/tests/test-override-1.il 2006-01-14 20:34:07 UTC (rev
55581)
@@ -0,0 +1,53 @@
+// Test for "full" syntax of specifying overrides.
+// This has non-generic types & methods
+
+.assembly extern mscorlib
+{
+ .ver 2:0:0:0
+}
+.assembly 'test-override-1'
+{
+ .custom instance void class
[mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor()
= (
+ 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78
+ 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 )
+
+ .custom instance void class
[mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32)
= (01 00 08 00 00 00 00 00 )
+
+ .ver 0:0:0:0
+}
+.module 'test-override-1.dll'
+
+ .class private auto ansi beforefieldinit test
+ extends [mscorlib]System.Object
+ implements IFoo {
+
+ .method public final virtual hidebysig newslot
+ instance default void bar (string si) cil managed
+ {
+ .override method instance void class IFoo::foo(string)
+
+ .maxstack 8
+ IL_0000: nop
+ IL_0001: ret
+ }
+
+ .method public hidebysig specialname rtspecialname
+ instance default void .ctor () cil managed
+ {
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void object::.ctor()
+ IL_0006: ret
+ }
+
+ }
+
+ .class interface private auto ansi abstract IFoo
+ {
+ .method public virtual hidebysig newslot abstract
+ instance default void foo (string s) cil managed
+ {
+
+ }
+ }
+
Added: trunk/mcs/ilasm/tests/test-override-2.il
===================================================================
--- trunk/mcs/ilasm/tests/test-override-2.il 2006-01-14 19:57:17 UTC (rev
55580)
+++ trunk/mcs/ilasm/tests/test-override-2.il 2006-01-14 20:34:07 UTC (rev
55581)
@@ -0,0 +1,52 @@
+// Test for "full" syntax of specifying overrides.
+// This has method in a generic type
+
+.assembly extern mscorlib
+{
+ .ver 2:0:0:0
+}
+.assembly 'test-override-2'
+{
+ .custom instance void class
[mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor()
= (
+ 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78 //
....T..WrapNonEx
+ 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 ) //
ceptionThrows.
+
+ .custom instance void class
[mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32)
= (01 00 08 00 00 00 00 00 ) // ........
+
+ .ver 0:0:0:0
+}
+.module 'test-override-2.dll'
+
+
+ .class private auto ansi beforefieldinit test
+ extends [mscorlib]System.Object
+ implements class IFoo`1<string> {
+
+ .method public final virtual hidebysig newslot
+ instance default void foo (class IFoo`1<string> _f) cil managed
+ {
+ .override method instance void class IFoo`1<string>::foo(class
IFoo`1<string>)
+ .maxstack 8
+ IL_0000: nop
+ IL_0001: ret
+ }
+
+ .method public hidebysig specialname rtspecialname
+ instance default void .ctor () cil managed
+ {
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void object::.ctor()
+ IL_0006: ret
+ }
+
+ }
+
+ .class interface private auto ansi abstract IFoo`1<T>
+ {
+ .method public virtual hidebysig newslot abstract
+ instance default void foo (class IFoo`1<!T> _f) cil managed
+ {
+ }
+
+ }
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches