Bug 10366 – Ddoc: Symbols in template classes don't get fully qualified anchors

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2013-06-15T12:17:00Z
Last change time
2015-06-09T05:13:48Z
Keywords
pull
Assigned to
nobody
Creator
doob

Comments

Comment #0 by doob — 2013-06-15T12:17:37Z
class Foo (T) { /// void bar() { }; } Two anchors will be generated for Foo.bar: "bar" and ".bar". If the class is not a template "bar" and ".Foo.bar" will be generated. I'm not 100% that is due to Foo being a template, but I suspect that's the reason.
Comment #1 by hsteoh — 2014-06-25T00:23:36Z
Comment #2 by github-bugzilla — 2014-06-25T01:16:16Z
Comment #3 by hsteoh — 2014-06-25T05:31:01Z
Apparently, there is still one case that doesn't work, when there's a template function inside a templated struct or class: ------ struct S(T) { void func(U)(U u) { } } ------
Comment #4 by hsteoh — 2014-06-25T05:31:51Z
Oops, forgot the ddoc comments: ----- /// struct S(T) { /// void func(U)(U u) { } } -----
Comment #5 by hsteoh — 2014-06-27T00:03:56Z
Fixed in latest git HEAD, verified with both original test case and the templated member of templated aggregate case.
Comment #6 by hsteoh — 2014-06-27T00:04:54Z
P.S. Just for future reference, here's the pull that fixed it: https://github.com/D-Programming-Language/dmd/pull/3695
Comment #7 by nick — 2014-07-30T11:52:30Z
*** Issue 12594 has been marked as a duplicate of this issue. ***