2009-09-06 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Sun, 6 Sep 2009 02:22:31 +0000 (02:22 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Sun, 6 Sep 2009 02:22:31 +0000 (02:22 -0000)
* ConstructorOnTypeBuilderInst.cs (GetParameters): Make it work for
finished types.

svn path=/trunk/mcs/; revision=141392

mcs/class/corlib/System.Reflection.Emit/ChangeLog
mcs/class/corlib/System.Reflection.Emit/ConstructorOnTypeBuilderInst.cs

index 9bffb3c735da9bee88e9e56e01817761877704e6..247791c9aa39c0d991a0051324c6e5f1d6cf543c 100644 (file)
@@ -1,3 +1,8 @@
+2009-09-06 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * ConstructorOnTypeBuilderInst.cs (GetParameters): Make it work for
+       finished types.
+
 2009-09-02 Rodrigo Kumpera  <rkumpera@novell.com>
 
        * ILGenerator.cs (label_fixup): Check for unmarked labels.
index 3b0e28a8935fac9a3ed2c336ea5b3f3f3a58bc77..275029cf52980e1e477b0da37690d4d89aa2fe4c 100644 (file)
@@ -99,13 +99,13 @@ namespace System.Reflection.Emit
 
                public override ParameterInfo[] GetParameters ()
                {
-                       if (!((ModuleBuilder)cb.Module).assemblyb.IsCompilerContext)
+                       if (!((ModuleBuilder)cb.Module).assemblyb.IsCompilerContext && !instantiation.generic_type.is_created)
                                throw new NotSupportedException ();
 
                        ParameterInfo [] res = new ParameterInfo [cb.parameters.Length];
                        for (int i = 0; i < cb.parameters.Length; i++) {
                                Type type = instantiation.InflateType (cb.parameters [i]);
-                               res [i] = new ParameterInfo (cb.pinfo == null ? null : cb.pinfo [i], type, this, i);
+                               res [i] = new ParameterInfo (cb.pinfo == null ? null : cb.pinfo [i], type, this, i + 1);
                        }
                        return res;
                }