www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 193] New: DDoc generates incorrect expansion for template decls; breaks CandyDoc

reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=193

           Summary: DDoc generates incorrect expansion for template decls;
                    breaks CandyDoc
           Product: D
           Version: unspecified
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: critical
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: someidiot earthlink.net


When DDoc is presented with a templated decl, it produces multiple expansions
of D_PSYMBOL instead of just one. For example, using the default -D settings:

class Foo(T) : Bar

becomes:

<dt><big>class <u><u>Foo</u></u>(T): Bar;
</big></dt>

The double <u> has no adverse effect in this case, but the multiple expansions
can wreak havoc for other D_PSYMBOL definitions such as the one used by
CandyDoc (which emit script calls, etc)

In contrast, a non templated:

class Foo : Bar

becomes:

<dt><big>class <u>Foo</u>: Bar;
</big></dt>


-- 
Jun 14 2006
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=193


bugzilla digitalmars.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED




------- Comment #1 from bugzilla digitalmars.com  2006-06-30 20:29 -------
Fixed DMD 0.162


-- 
Jun 30 2006
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=193


someidiot earthlink.net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |




------- Comment #2 from someidiot earthlink.net  2006-08-11 19:14 -------
Hrm ... this does not appear to be fixed. There seems to be no change in the
generated output, e.g.

struct TextT(T)

becomes:

<dl><dt><big>struct <u><u>TextT</u></u>;
</big></dt>

Still the same double underline, due to twin expansion of D_PSYMBOL (or
whatever). CandyDoc truly does not like this


-- 
Aug 11 2006
prev sibling parent reply d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=193


bugzilla digitalmars.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |WORKSFORME




------- Comment #3 from bugzilla digitalmars.com  2006-08-14 14:44 -------
Works for me:
-----------------------
C:\mars>type test.d
class Bar { }

/// foo
struct Foo(T)
{
}

C:\mars>dmd -D -c -o- test

C:\mars>type test.html
<html><head>
        <META http-equiv="content-type" content="text/html; charset=utf-8">
        <title>test</title>
        </head><body>
        <h1>test</h1>
        <!-- Generated by Ddoc from test.d -->
<br><br>
<dl><dt><big>struct <u>Foo</u>(T);
</big></dt>
<dd>foo
<br><br>

<dl></dl>
</dd>
</dl>

        <hr><small>Page generated by <a
href="http://www.digitalmars.com/d/ddoc.html">Ddoc</a>. </small>
        </body></html>

C:\mars>
------------------------------


-- 
Aug 14 2006
parent kris <foo bar.com> writes:
d-bugmail puremagic.com wrote:
 http://d.puremagic.com/issues/show_bug.cgi?id=193
 
 
 bugzilla digitalmars.com changed:
 
            What    |Removed                     |Added
 ----------------------------------------------------------------------------
              Status|REOPENED                    |RESOLVED
          Resolution|                            |WORKSFORME
 
 
 
 
 ------- Comment #3 from bugzilla digitalmars.com  2006-08-14 14:44 -------
 Works for me:
 -----------------------
 C:\mars>type test.d
 class Bar { }
 
 /// foo
 struct Foo(T)
 {
 }
 
 C:\mars>dmd -D -c -o- test
 
 C:\mars>type test.html
 <html><head>
         <META http-equiv="content-type" content="text/html; charset=utf-8">
         <title>test</title>
         </head><body>
         <h1>test</h1>
         <!-- Generated by Ddoc from test.d -->
 <br><br>
 <dl><dt><big>struct <u>Foo</u>(T);
 </big></dt>
 <dd>foo
 <br><br>
 
 <dl></dl>
 </dd>
 </dl>
 
         <hr><small>Page generated by <a
 href="http://www.digitalmars.com/d/ddoc.html">Ddoc</a>. </small>
         </body></html>
 
 C:\mars>

Aye, sorry ... my bad
Aug 16 2006