[Mono-docs-list] Differences between generic names in the documentation.

Jonathan Pryor jonpryor at vt.edu
Sun Dec 9 08:42:28 EST 2007

On Sun, 2007-12-09 at 12:11 +0100, Mario Sopena Novales wrote:
> On 08/12/2007, Jonathan Pryor <jonpryor at vt.edu> wrote:
> > On Sat, 2007-12-08 at 12:04 +0100, Valentin Sawadski wrote:
> > > But then again it seems that the browser uses the Test&lt;T&gt;
> > > everywhere. Sometimes it gets parsed and will be displayed as Test<T>
> > > but other times not and some ugly HTML-Entities are being shown as the
> > > class name.
> >
> > These are bugs in the doc browser and should be fixed.
> Can you provide samples, bugzilla report or point to a class/method/..
> that is not rendered properly so I can try to fix it please.

I don't know of any bugzilla reports, but here's an example:

1. Open Monodoc.
2. Select Class Library -> System -> Array Class -> Members.
3. Then just look under "Methods" -- lots of issues show up:
   - "Exists&lt;T&gt;(T[], Predicate&lt;T&gt;) : bool" instead of
     "Exists<T>(T[], Predicate<T>) : bool"
   - etc.
4. Click on a "Predicate&lt;T&gt;" link.  This should take you to the
   documentation for System.Predicate`1; instead, it takes to limbo
   with "System.Predicate<T>" in the doc area.

The problem is that the docbrowser is escaping XML entities when it
really shouldn't be, because I know there's logic in the engine to parse
e.g. System.Predicate<T> and translate it into System.Predicate`1 to
load the appropriate documentation (I know as I wrote it; it's simple,
in that it just removes everything after the '<', then appends "# commas
+ 1" between the '<' and '>').

Because the docbrowser is overly escaping, this code is getting
System.Predicate&lt;T&gt;, which (obviously) contains no '<', so the
translation logic fails.

There are likely other bugs; I didn't test this extensively when I
originally wrote (bad me!), and I certainly don't remember this "over
escaping" problem...

 - Jon

More information about the Mono-docs-list mailing list