https://bugzilla.novell.com/show_bug.cgi?id=421815
User [EMAIL PROTECTED] added comment https://bugzilla.novell.com/show_bug.cgi?id=421815#c4 --- Comment #4 from Jonathan Pryor <[EMAIL PROTECTED]> 2008-08-31 18:22:23 MDT --- If you look carefully at the XML, you'll notice that the gmcs names 1. go against the standard, and 2. aren't sufficiently qualified. For example, under gmcs Tuple<T>'s IList<object>.RemoveAt() method has a //member/@name value of "M:Mono.Rocks.Tuple`1.IList.RemoveAt``1(System.Int32)", which (1) is counter to the standard (which specifies that "embedded" periods should be replaced by '#', and since the member in this case is "IList.RemoveAt" it should at minimum be "Tuple`1.IList#RemoveAt``1"), and (2) is completely broken anyway because it doesn't include a namespace or the type (as a type could implement IList<T> multiple times, e.g. as IList<object> and IList<string>). And (3) I have no idea what's with the ``1 at the end of that method -- RemoveAt() isn't a generic method, so it shouldn't have ``1 appended to it. CSC's output for the same member is: M:Mono.Rocks.Tuple`1.System#Collections#Generic#IList{System#Object}#RemoveAt(System.Int32). Far longer, but also fully qualified. Properties on generic types are broken slightly differently; for Tuple<T>'s ICollection<object>.Count property, gmcs generates "P:Mono.Rocks.Tuple`1.ICollection`1.Count". At least this is more understandable than the output for generic methods, but it still isn't sufficiently qualified. CSC generates: P:Mono.Rocks.Tuple`1.System#Collections#Generic#ICollection{System#Object}#Count. Non-generic methods have similar issues, except ` doesn't show up anywhere. It would be useful to fix this because monodocer supports importing the CSC-style explicitly implemented interface member format, but not gmcs; consequently, monodocer can't currently import gmcs-generated documentation without further processing. The one bit of "bizarreness" in CSC's output isn't in this file (unfortunately), but is in http://anonsvn.mono-project.com/source/trunk/monodoc/tools/DocTest-v1.cs. MyList<A,B> explicitly implements IFoo<A>.Method<U>, so I would naively think that the cref would be "M:Mono.DocTest.Generic.MyList`2.Mono#DocTest#Generic#IFoo{`0}#Method``1(`0,``0)" but it is instead "M:Mono.DocTest.Generic.MyList`2.Mono#DocTest#Generic#IFoo{A}#Method``1(`0,``0)" (note "A" instead of "`0" within the interface name). I'm not sure why this is happening. -- 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
