www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 4107] New: Duplicate documentation for member function templates

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

           Summary: Duplicate documentation for member function templates
           Product: D
           Version: 2.041
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: bugzilla kyllingen.net



02:27:12 PDT ---
Created an attachment (id=611)
DDoc output

When a templated class/struct contains a member function template, the
documentation for the latter is printed twice in the resulting HTML file; once
for the template and once for the function.

  /// struct doc
  struct Bug4107(T)
  {
      /// templated function doc
      void foo(U)(U u) { }
  }

I've attached the HTML file generated by DDoc.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Apr 21 2010
next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=4107


kennytm gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kennytm gmail.com



The bug is that, DMD only recognizes the "a template declares exactly one
member, and that member is a function with the same name as the template" (is
there are short-form for that?) during semantic(), but the template isn't
instantiated, so its members won't be semantic()-ed. Therefore, does not know
that 'foo' is a "magic one-member template", and emits the ddoc comment as if
it's a regular template.

A related bug is when there are nested templated aggregates, the inner levels
won't be shown in DDoc.

----------------------------------
/// alpha
struct Bug4107b(T) {
    /// beta
    public struct B(U) {
        /// gamma
        public struct C(V) {
            /// delta
            public struct D(W) {
            }
        }
    }
}
----------------------------------

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 04 2011
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=4107


kennytm gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch





https://github.com/D-Programming-Language/dmd/pull/84

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 04 2011
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=4107


Walter Bright <bugzilla digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
                 CC|                            |bugzilla digitalmars.com
         Resolution|                            |FIXED



00:19:29 PDT ---
https://github.com/D-Programming-Language/dmd/commit/f8e7f05c2161a2b99286f58bcb4c8295459860dd

https://github.com/D-Programming-Language/dmd/commit/cce360cdf1a79b5fce2fe003ce28f48708693885

https://github.com/D-Programming-Language/dmd/commit/92a9682ef8f23b93f9a89de3116ba7b7dafebd48

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jun 06 2011