https://bugzilla.novell.com/show_bug.cgi?id=387404
Summary: ModuleBuilder.GetTypeToken returns wrong token
Product: Mono: Runtime
Version: SVN
Platform: All
OS/Version: All
Status: NEW
Severity: Normal
Priority: P5 - None
Component: misc
AssignedTo: [email protected]
ReportedBy: [EMAIL PROTECTED]
QAContact: [email protected]
Found By: ---
Mono's ModuleBuilder.GetTypeToken returns the wrong token (or ResolveType is
broken, I haven't yet had time to check this).
To reproduce, compile and run the following code:
using System;
using System.Reflection;
using System.Reflection.Emit;
class Program
{
static void Main ()
{
Type type;
TypeToken typeToken;
Type resolved_type;
AssemblyName aname = new AssemblyName ();
aname.Name = "lib";
AssemblyBuilder ab =
AppDomain.CurrentDomain.DefineDynamicAssembly (
aname, AssemblyBuilderAccess.RunAndSave);
ModuleBuilder mb = ab.DefineDynamicModule ("MyModule");
type = typeof (string);
typeToken = mb.GetTypeToken (type);
resolved_type = mb.ResolveType (typeToken.Token);
if (type != resolved_type) {
Console.WriteLine ("FAILED: " +
resolved_type.AssemblyQualifiedName);
} else {
Console.WriteLine ("SUCCESS: " +
resolved_type.AssemblyQualifiedName);
}
type = typeof (object).MakeArrayType ();
typeToken = mb.GetTypeToken (type);
resolved_type = mb.ResolveType (typeToken.Token);
if (type != resolved_type) {
Console.WriteLine ("FAILED: " +
resolved_type.AssemblyQualifiedName);
} else {
Console.WriteLine ("SUCCESS: " +
resolved_type.AssemblyQualifiedName);
}
}
}
Expected result:
SUCCESS: System.String, mscorlib, Version=2.0.0.0, Culture=neutral,
PublicKeyTok
en=b77a5c561934e089
SUCCESS: System.Object[], mscorlib, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089
Actual result:
FAILED: System.Void, mscorlib, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=
b77a5c561934e089
FAILED: System.Char, mscorlib, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=
b77a5c561934e089
Note:
The second test currently also fails on MS:
http://support.microsoft.com/kb/950986.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
_______________________________________________
mono-bugs maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs