Created attachment 611 [details] 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.
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) { } } } } ----------------------------------
DMD pull request #84. https://github.com/D-Programming-Language/dmd/pull/84
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
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル