Please do not reply to this email- if you want to comment on the bug, go to the URL shown below and enter your comments there.
Changed by [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=82028 --- shadow/82028 2007-07-07 04:02:24.000000000 -0400 +++ shadow/82028.tmp.20217 2007-07-07 04:02:24.000000000 -0400 @@ -0,0 +1,75 @@ +Bug#: 82028 +Product: Mono: Compilers +Version: 1.2 +OS: All +OS Details: +Status: NEW +Resolution: +Severity: +Priority: Normal +Component: C# +AssignedTo: [EMAIL PROTECTED] +ReportedBy: [EMAIL PROTECTED] +QAContact: [EMAIL PROTECTED] +TargetMilestone: --- +URL: +Cc: +Summary: [GMCS] Wrong method names with type parameters produced + +When a method of property name includes type parameters (eg. implicit +interface implementation), then gmcs current produces wrong names. + +Example 1 + + C# code: + + T IConvert<T>.Result { + get { return default (T); } + } + + IL: + + * MS * + .method private hidebysig newslot specialname virtual final + instance !T 'IConvert<T>.get_Result'() cil managed + + * Mono * + .method private hidebysig newslot specialname virtual final + instance !T 'IConvert`1[T].get_Result'() cil managed + +Example 2 + + C# code: + + void IConvert<KeyPair<K, T>>.Convert (KeyPair<K, T> x, KeyPair<K, T> y) + { + } + + IL: + + * MS * + .method private hidebysig newslot virtual final + instance void 'IConvert<KeyPair<K,T>>.Convert'(class + KeyPair`2<!K,!T> x, class KeyPair`2<!K,!T> y) cil managed + + * Mono * + .method private hidebysig newslot virtual final + instance void 'IConvert`1[[KeyPair`2[K,T], test, +Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]].Convert'(class +KeyPair`2<!K,!T> x, class KeyPair`2<!K,!T> y) cil managed + +I've attached the source code, and both the MS and Mono produced IL. + +Compiling the source code using CSC are running it on either Mono or MS +results in the following (expected) output: + +IConvert<KeyPair<K,T>>.Convert +IConvert<KeyPair<K,T>>.get_Result + +Compiling it using GMCS and running it on either Mono or MS yields the +following output: + +IConvert`1[[KeyPair`2[K,T], test, Version=0.0.0.0, Culture=neutral, +PublicKeyToken=null]].Convert +IConvert`1[[KeyPair`2[K,T], test, Version=0.0.0.0, Culture=neutral, +PublicKeyToken=null]].get_Result _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
