diff --git a/docs/modules/ROOT/pages/config-file.adoc b/docs/modules/ROOT/pages/config-file.adoc index 85ea4a681..4d5084cac 100644 --- a/docs/modules/ROOT/pages/config-file.adoc +++ b/docs/modules/ROOT/pages/config-file.adoc @@ -207,6 +207,8 @@ For exclusion rules, the symbol must strictly match the pattern to be excluded. The following options can be defined both in the configuration file and on the command line, where the command line options always take precedence. +Whenever applicable, the command line options attempt to mirror (i) non-abbreviated (ii) kebab-case variants of the equivalent commands in Doxygen. For instance, the Doxygen `EXTRACT_ANON_NSPACES` option is mirrored by the `extract-anonymous-namespaces` command line option. + [config-options-reference,level=3] ==== include::partial$ConfigOptions.json[] diff --git a/docs/mrdocs.schema.json b/docs/mrdocs.schema.json index aa6ad73fe..05a8f64e3 100644 --- a/docs/mrdocs.schema.json +++ b/docs/mrdocs.schema.json @@ -302,7 +302,7 @@ }, "overloads": { "default": true, - "description": "When set to `true`, MrDocs detects function overloads and groups them as a single symbol type.", + "description": "When set to `true`, MrDocs detects function overloads and groups them as a single symbol type. The documentation for this new symbol comes from the union of non-ambiguous metadata from the functions.", "enum": [ true, false @@ -540,6 +540,16 @@ "title": "Warn if parameters are not documented", "type": "boolean" }, + "warn-unnamed-param": { + "default": false, + "description": "When set to `true`, MrDocs outputs a warning message if a documented function has a parameter that is not named.", + "enum": [ + true, + false + ], + "title": "Warn if documented functions have unnamed parameters", + "type": "boolean" + }, "warnings": { "default": true, "description": "When set to `true`, MrDocs outputs warning messages during the generation of the documentation. It is usually recommended to enable warnings while writing the documentation.", diff --git a/include/mrdocs/Corpus.hpp b/include/mrdocs/Corpus.hpp index 6dc05db34..9700c9b1d 100644 --- a/include/mrdocs/Corpus.hpp +++ b/include/mrdocs/Corpus.hpp @@ -90,12 +90,12 @@ class MRDOCS_VISIBLE /** Return the Info for the matching string in a given context. */ virtual - Expected + Expected> lookup(SymbolID const& context, std::string_view name) const = 0; /** Return the Info for the matching string in the global context. */ - Expected + Expected> lookup(std::string_view name) const { return lookup(SymbolID::global, name); diff --git a/include/mrdocs/Metadata/Info/Function.hpp b/include/mrdocs/Metadata/Info/Function.hpp index 787a401ce..b448d29a2 100644 --- a/include/mrdocs/Metadata/Info/Function.hpp +++ b/include/mrdocs/Metadata/Info/Function.hpp @@ -171,6 +171,7 @@ struct FunctionInfo final std::vector Attributes; // CXXMethodDecl + bool IsRecordMethod = false; bool IsVirtual = false; bool IsVirtualAsWritten = false; bool IsPure = false; diff --git a/include/mrdocs/Metadata/Javadoc.hpp b/include/mrdocs/Metadata/Javadoc.hpp index 1f16ace92..e8eafde45 100644 --- a/include/mrdocs/Metadata/Javadoc.hpp +++ b/include/mrdocs/Metadata/Javadoc.hpp @@ -255,6 +255,16 @@ struct Text : Node } }; +MRDOCS_DECL +std::strong_ordering +operator<=>(Polymorphic const& lhs, Polymorphic const& rhs); + +inline +bool +operator==(Polymorphic const& lhs, Polymorphic const& rhs) { + return std::is_eq(lhs <=> rhs); +} + /** A piece of styled text. */ struct Styled final : Text @@ -489,7 +499,7 @@ struct Paragraph : Block } auto operator<=>(Paragraph const&) const = default; - bool operator==(Paragraph const&) const noexcept = default; + bool equals(Node const& other) const noexcept override { return Kind == other.Kind && @@ -518,7 +528,7 @@ struct Brief final : Paragraph } auto operator<=>(Brief const&) const = default; - bool operator==(Brief const&) const noexcept = default; + bool equals(Node const& other) const noexcept override { return Kind == other.Kind && diff --git a/include/mrdocs/Metadata/Source.hpp b/include/mrdocs/Metadata/Source.hpp index 8cfab3cb7..e9d9fa28e 100644 --- a/include/mrdocs/Metadata/Source.hpp +++ b/include/mrdocs/Metadata/Source.hpp @@ -69,6 +69,7 @@ struct MRDOCS_DECL //-------------------------------------------- + constexpr Location( std::string_view const full_path = {}, std::string_view const short_path = {}, @@ -131,7 +132,7 @@ struct MRDOCS_DECL auto operator<=>(SourceInfo const&) const = default; protected: - SourceInfo() = default; + constexpr SourceInfo() = default; }; MRDOCS_DECL diff --git a/share/mrdocs/addons/generator/adoc/partials/symbol.adoc.hbs b/share/mrdocs/addons/generator/adoc/partials/symbol.adoc.hbs index 8cfdadda1..5f4c4e2e8 100644 --- a/share/mrdocs/addons/generator/adoc/partials/symbol.adoc.hbs +++ b/share/mrdocs/addons/generator/adoc/partials/symbol.adoc.hbs @@ -24,7 +24,7 @@ {{/if}} {{! Synopsis }} {{#unless (eq symbol.kind "namespace")}} -{{#> markup/dynamic-level-h }}Synopsis{{/markup/dynamic-level-h}} +{{#> markup/dynamic-level-h }}{{#if (ne symbol.kind "overloads")}}Synopsis{{else}}Synopses{{/if}}{{/markup/dynamic-level-h}} {{>location/source dcl=(primary_location symbol)}} @@ -89,7 +89,6 @@ {{/if}} {{! Exceptions }} -{{#if (ne symbol.kind "overloads")}} {{#if symbol.doc.exceptions}} {{#> markup/dynamic-level-h }}Exceptions{{/markup/dynamic-level-h}} @@ -103,24 +102,6 @@ {{/each}} |=== -{{/if}} -{{else}} -{{#with (flattenUnique symbol.members "doc.exceptions" "exception") as |allExceptions|}} -{{#if (ne (len allExceptions) 0)}} -{{#> markup/dynamic-level-h }}Exceptions{{/markup/dynamic-level-h}} - -|=== -| Name | Thrown on - -{{#each allExceptions as |exception|}} -| `{{exception.exception}}` -| {{{exception.description}}} - -{{/each}} -|=== - -{{/if}} -{{/with}} {{/if}} {{! Return value }} {{#if symbol.doc.returns}} @@ -136,7 +117,6 @@ {{/if}} {{! Template Parameters }} -{{#if (ne symbol.kind "overloads")}} {{#if symbol.doc.tparams}} {{#> markup/dynamic-level-h }}Template Parameters{{/markup/dynamic-level-h}} @@ -150,27 +130,8 @@ {{/each}} |=== -{{/if}} -{{else}} -{{#with (flattenUnique symbol.members "doc.tparams" "name") as |allTParams|}} -{{#if (ne (len allTParams) 0)}} -{{#> markup/dynamic-level-h }}Template Parameters{{/markup/dynamic-level-h}} - -|=== -| Name | Description - -{{#each allTParams as |param|}} -| *{{param.name}}* -| {{{param.description}}} - -{{/each}} -|=== - -{{/if}} -{{/with}} {{/if}} {{! Parameters }} -{{#if (ne symbol.kind "overloads")}} {{#if symbol.doc.params}} {{#> markup/dynamic-level-h }}Parameters{{/markup/dynamic-level-h}} @@ -184,24 +145,6 @@ {{/each}} |=== -{{/if}} -{{else}} -{{#with (flattenUnique symbol.members "doc.params" "name") as |allParams|}} -{{#if (ne (len allParams) 0)}} -{{#> markup/dynamic-level-h }}Parameters{{/markup/dynamic-level-h}} - -|=== -| Name | Description - -{{#each allParams as |param|}} -| *{{param.name}}* -| {{{param.description}}} - -{{/each}} -|=== - -{{/if}} -{{/with}} {{/if}} {{! Preconditions }} {{#if symbol.doc.preconditions}} diff --git a/share/mrdocs/addons/generator/common/partials/symbol/detail/members-table-row.hbs b/share/mrdocs/addons/generator/common/partials/symbol/detail/members-table-row.hbs index 12c4f1fe1..893ac1fd8 100644 --- a/share/mrdocs/addons/generator/common/partials/symbol/detail/members-table-row.hbs +++ b/share/mrdocs/addons/generator/common/partials/symbol/detail/members-table-row.hbs @@ -5,15 +5,8 @@ {{#>markup/a href=url}}{{#>markup/code}}{{>symbol/name . nolink=true}}{{/markup/code}}{{/markup/a}} {{>symbol/special-function-suffix .}} {{~/markup/td}} {{#if (eq includeBrief true)}} -{{#>markup/td}} -{{#if (ne kind "overloads")~}} +{{#>markup/td~}} {{{~doc.brief}}} -{{else~}} -{{#each (unique (pluck (pluck members "doc") "brief"))~}} -{{{.}}} - -{{/each~}} -{{/if~}} -{{~/markup/td~}} +{{/markup/td~}} {{/if}} {{~/markup/tr}} \ No newline at end of file diff --git a/share/mrdocs/addons/generator/common/partials/symbol/signatures.hbs b/share/mrdocs/addons/generator/common/partials/symbol/signatures.hbs index 466a201e0..b14b7dc2b 100644 --- a/share/mrdocs/addons/generator/common/partials/symbol/signatures.hbs +++ b/share/mrdocs/addons/generator/common/partials/symbol/signatures.hbs @@ -19,6 +19,8 @@ {{else}} {{#each members as | member |}} +{{#if member.doc.brief}}{{#> markup/p }}{{{member.doc.brief}}}{{/markup/p}}{{/if}} + {{#> markup/code-block }} {{> symbol/signature member link=member}} {{/markup/code-block}} diff --git a/share/mrdocs/addons/generator/html/partials/symbol.html.hbs b/share/mrdocs/addons/generator/html/partials/symbol.html.hbs index 92133ca77..db9b8defe 100644 --- a/share/mrdocs/addons/generator/html/partials/symbol.html.hbs +++ b/share/mrdocs/addons/generator/html/partials/symbol.html.hbs @@ -31,7 +31,7 @@ {{! Synopsis }} {{#unless (eq symbol.kind "namespace")}}
-{{#> markup/dynamic-level-h level=2 }}Synopsis{{/markup/dynamic-level-h}} +{{#> markup/dynamic-level-h level=2 }}{{#if (ne symbol.kind "overloads")}}Synopsis{{else}}Synopses{{/if}}{{/markup/dynamic-level-h}}
{{>location/source dcl=(primary_location symbol)}}
@@ -116,7 +116,6 @@ {{/if}} {{! Exceptions }} -{{#if (ne symbol.kind "overloads")}} {{#if symbol.doc.exceptions}}
{{#> markup/dynamic-level-h level=2 }}Exceptions{{/markup/dynamic-level-h}} @@ -138,31 +137,6 @@
{{/if}} -{{else}} -{{#with (flattenUnique symbol.members "doc.exceptions" "exception") as |allExceptions|}} -{{#if (ne (len allExceptions) 0)}} -
-{{#> markup/dynamic-level-h level=2 }}Exceptions{{/markup/dynamic-level-h}} - - - - - - - - -{{#each allExceptions as |exception|}} - - - - -{{/each}} - -
NameThrown on
{{exception}}{{{description}}}
-
-{{/if}} -{{/with}} -{{/if}} {{! Return value }} {{#if symbol.doc.returns}}
@@ -179,7 +153,6 @@
{{/if}} {{! Template Parameters }} -{{#if (ne symbol.kind "overloads")}} {{#if symbol.doc.tparams}}
{{#> markup/dynamic-level-h level=2 }}Template Parameters{{/markup/dynamic-level-h}} @@ -201,33 +174,7 @@
{{/if}} -{{else}} -{{#with (flattenUnique symbol.members "doc.tparams" "name") as |allTParams|}} -{{#if (ne (len allTParams) 0)}} -
-{{#> markup/dynamic-level-h level=2 }}Template Parameters{{/markup/dynamic-level-h}} - - - - - - - - -{{#each allTParams as |param|}} - - - - -{{/each}} - -
NameDescription
{{param.name}}{{{param.description}}}
-
-{{/if}} -{{/with}} -{{/if}} {{! Parameters }} -{{#if (ne symbol.kind "overloads")}} {{#if symbol.doc.params}}
{{#> markup/dynamic-level-h level=2 }}Parameters{{/markup/dynamic-level-h}} @@ -249,31 +196,6 @@
{{/if}} -{{else}} -{{#with (flattenUnique symbol.members "doc.params" "name") as |allParams|}} -{{#if (ne (len allParams) 0)}} -
-{{#> markup/dynamic-level-h level=2 }}Parameters{{/markup/dynamic-level-h}} - - - - - - - - -{{#each allParams as |param|}} - - - - -{{/each}} - -
NameDescription
{{param.name}}{{{param.description}}}
-
-{{/if}} -{{/with}} -{{/if}} {{! Preconditions }} {{#if symbol.doc.preconditions}}
diff --git a/src/lib/AST/ASTVisitor.cpp b/src/lib/AST/ASTVisitor.cpp index c69fa8f1a..468dc1e06 100644 --- a/src/lib/AST/ASTVisitor.cpp +++ b/src/lib/AST/ASTVisitor.cpp @@ -509,23 +509,6 @@ generateID(Decl const* D) const return id; } -namespace -{ -template -bool -isDefinition(DeclTy* D) -{ - if constexpr (requires {D->isThisDeclarationADefinition();}) - { - return D->isThisDeclarationADefinition(); - } - else - { - return false; - } -} -} - template DeclTy> void ASTVisitor:: @@ -560,7 +543,7 @@ populate(SourceInfo& I, DeclTy const* D) dynamic_cast(I), Loc, isDefinition(D), - D->getASTContext().getRawCommentForDeclNoCache(D)); + isDocumented(D)); } } @@ -898,6 +881,7 @@ populate(FunctionInfo& I, CXXMethodDecl const* D) { FunctionDecl const* FD = D; populate(I, FD); + I.IsRecordMethod = true; I.IsVirtual |= D->isVirtual(); I.IsVirtualAsWritten |= D->isVirtualAsWritten(); I.IsPure |= D->isPureVirtual(); @@ -3366,7 +3350,7 @@ checkUndocumented( // Check if the symbol is documented, ensure this symbol is not in the set // of undocumented symbols in this translation unit and return // without an error if it is - if (D->getASTContext().getRawCommentForDeclNoCache(D)) + if (isDocumented(D)) { if (config_->warnIfUndocumented) { diff --git a/src/lib/AST/ClangHelpers.cpp b/src/lib/AST/ClangHelpers.cpp index e3b0b3b2f..0c57b3806 100644 --- a/src/lib/AST/ClangHelpers.cpp +++ b/src/lib/AST/ClangHelpers.cpp @@ -355,7 +355,7 @@ isVirtualMember(Decl const* D) } bool -isAnonymousNamespace(const Decl *D) +isAnonymousNamespace(Decl const* D) { if (auto const* ND = dyn_cast(D)) { @@ -365,7 +365,7 @@ isAnonymousNamespace(const Decl *D) } bool -isStaticFileLevelMember(const Decl *D) +isStaticFileLevelMember(Decl const* D) { if (const auto *VD = dyn_cast(D)) { return VD->getStorageClass() == SC_Static && VD->getDeclContext()->isFileContext(); @@ -376,5 +376,11 @@ isStaticFileLevelMember(const Decl *D) return false; } +bool +isDocumented(Decl const* D) +{ + return D->getASTContext().getRawCommentForDeclNoCache(D); +} + } // clang::mrdocs diff --git a/src/lib/AST/ClangHelpers.hpp b/src/lib/AST/ClangHelpers.hpp index 2b8dd5587..1be300ae7 100644 --- a/src/lib/AST/ClangHelpers.hpp +++ b/src/lib/AST/ClangHelpers.hpp @@ -844,6 +844,24 @@ MRDOCS_DECL bool isStaticFileLevelMember(Decl const *D); +MRDOCS_DECL +bool +isDocumented(Decl const *D); + +template +bool +isDefinition(DeclTy* D) +{ + if constexpr (requires {D->isThisDeclarationADefinition();}) + { + return D->isThisDeclarationADefinition(); + } + else + { + return false; + } +} + #ifdef NDEBUG #define MRDOCS_SYMBOL_TRACE(D, C) #else diff --git a/src/lib/AST/ParseRef.cpp b/src/lib/AST/ParseRef.cpp index 7482e30da..8fd483514 100644 --- a/src/lib/AST/ParseRef.cpp +++ b/src/lib/AST/ParseRef.cpp @@ -16,23 +16,23 @@ namespace clang::mrdocs { namespace { constexpr bool -isDigit(char c) +isDigit(char const c) { return c >= '0' && c <= '9'; } constexpr bool -isIdentifierStart(char c) +isIdentifierStart(char const c) { - return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c == '_' || c == '~'; + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' || c == '~'; } constexpr bool -isIdentifierContinuation(char c) +isIdentifierContinuation(char const c) { - return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c == '_' || isDigit(c); + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' || isDigit(c); } class RefParser diff --git a/src/lib/Lib/ConfigOptions.json b/src/lib/Lib/ConfigOptions.json index d21407ed5..49e44d30e 100644 --- a/src/lib/Lib/ConfigOptions.json +++ b/src/lib/Lib/ConfigOptions.json @@ -299,7 +299,7 @@ { "name": "overloads", "brief": "Detect and group function overloads", - "details": "When set to `true`, MrDocs detects function overloads and groups them as a single symbol type.", + "details": "When set to `true`, MrDocs detects function overloads and groups them as a single symbol type. The documentation for this new symbol comes from the union of non-ambiguous metadata from the functions.", "type": "bool", "default": true } @@ -521,6 +521,13 @@ "type": "bool", "default": true }, + { + "name": "warn-unnamed-param", + "brief": "Warn if documented functions have unnamed parameters", + "details": "When set to `true`, MrDocs outputs a warning message if a documented function has a parameter that is not named.", + "type": "bool", + "default": false + }, { "name": "warn-if-undoc-enum-val", "brief": "Warn if enum values are not documented", diff --git a/src/lib/Lib/CorpusImpl.cpp b/src/lib/Lib/CorpusImpl.cpp index f4947366d..2d5c8abef 100644 --- a/src/lib/Lib/CorpusImpl.cpp +++ b/src/lib/Lib/CorpusImpl.cpp @@ -221,14 +221,14 @@ isTransparent(Info const& info) } } -Expected +Expected> CorpusImpl:: lookup(SymbolID const& context, std::string_view const name) const { return lookupImpl(*this, context, name); } -Expected +Expected> CorpusImpl:: lookup(SymbolID const& context, std::string_view name) { @@ -236,7 +236,7 @@ lookup(SymbolID const& context, std::string_view name) } template -Expected +Expected> CorpusImpl:: lookupImpl(Self&& self, SymbolID const& context, std::string_view name) { @@ -253,7 +253,7 @@ lookupImpl(Self&& self, SymbolID const& context, std::string_view name) name, self.Corpus::qualifiedName(*self.find(context)))); } - return info; + return std::cref(*info); } Expected const s = parseRef(name); if (!s) @@ -273,7 +273,7 @@ lookupImpl(Self&& self, SymbolID const& context, std::string_view name) name, self.Corpus::qualifiedName(*contextPtr))); } - return res; + return std::cref(*res); } template diff --git a/src/lib/Lib/CorpusImpl.hpp b/src/lib/Lib/CorpusImpl.hpp index 0502ad505..6206cd023 100644 --- a/src/lib/Lib/CorpusImpl.hpp +++ b/src/lib/Lib/CorpusImpl.hpp @@ -26,6 +26,7 @@ #include #include #include +#include namespace clang::mrdocs { @@ -91,10 +92,10 @@ class CorpusImpl final : public Corpus Info const* find(SymbolID const& id) const noexcept override; - Expected + Expected> lookup(SymbolID const& context, std::string_view name) const override; - Expected + Expected> lookup(SymbolID const& context, std::string_view name); /** Build metadata for a set of translation units. @@ -141,7 +142,7 @@ class CorpusImpl final : public Corpus template static - Expected + Expected> lookupImpl( Self&& self, SymbolID const& context, diff --git a/src/lib/Lib/ExecutionContext.cpp b/src/lib/Lib/ExecutionContext.cpp index dd8eaaac1..2d9e000ef 100644 --- a/src/lib/Lib/ExecutionContext.cpp +++ b/src/lib/Lib/ExecutionContext.cpp @@ -59,7 +59,7 @@ report( UndocumentedInfoSet&& undocumented) { InfoSet info = std::move(results); - std::unique_lock write_lock(mutex_); + std::unique_lock write_lock(mutex_); // Add all new Info to the existing set. info_.merge(info); diff --git a/src/lib/Metadata/Finalizers/JavadocFinalizer.cpp b/src/lib/Metadata/Finalizers/JavadocFinalizer.cpp index c49314f63..ba88143e4 100644 --- a/src/lib/Metadata/Finalizers/JavadocFinalizer.cpp +++ b/src/lib/Metadata/Finalizers/JavadocFinalizer.cpp @@ -112,12 +112,10 @@ void JavadocFinalizer:: finalize(doc::Reference& ref, bool const emitWarning) { - if (Expected res - = corpus_.lookup(current_context_->id, ref.string)) + if (auto resRef = corpus_.lookup(current_context_->id, ref.string)) { - Info const* resPtr = *res; - MRDOCS_ASSERT(resPtr); - ref.id = resPtr->id; + Info const& res = *resRef; + ref.id = res.id; } else if ( emitWarning && @@ -136,7 +134,7 @@ finalize(doc::Reference& ref, bool const emitWarning) " {}", corpus_.Corpus::qualifiedName(*current_context_), ref.string, - res.error().reason()); + resRef.error().reason()); refWarned_.insert({ref.string, current_context_->Name}); } } @@ -280,8 +278,8 @@ copyBriefAndDetails(Javadoc& javadoc) } // Find the node to copy from - Expected res = corpus_.lookup(current_context_->id, copied->string); - if (!res || !*res) + auto resRef = corpus_.lookup(current_context_->id, copied->string); + if (!resRef) { if (corpus_.config->warnings && corpus_.config->warnBrokenRef && @@ -292,25 +290,24 @@ copyBriefAndDetails(Javadoc& javadoc) " {}", corpus_.Corpus::qualifiedName(*current_context_), copied->string, - res.error().reason()); + resRef.error().reason()); } continue; } // Ensure the source node is finalized - Info const* resPtr = *res; - MRDOCS_ASSERT(resPtr); - if (!finalized_.contains(resPtr)) + Info const& res = *resRef; + if (!finalized_.contains(&res)) { - operator()(const_cast(*resPtr)); + operator()(const_cast(res)); } - if (!resPtr->javadoc) + if (!res.javadoc) { if (corpus_.config->warnings && corpus_.config->warnBrokenRef && !refWarned_.contains({copied->string, current_context_->Name})) { - auto resPrimaryLoc = getPrimaryLocation(*resPtr); + auto resPrimaryLoc = getPrimaryLocation(res); this->warn( "{}: Failed to copy documentation from '{}' (no documentation available).\n" " No documentation available.\n" @@ -320,7 +317,7 @@ copyBriefAndDetails(Javadoc& javadoc) copied->string, resPrimaryLoc->FullPath, resPrimaryLoc->LineNumber, - corpus_.Corpus::qualifiedName(*resPtr)); + corpus_.Corpus::qualifiedName(res)); } continue; } @@ -328,7 +325,7 @@ copyBriefAndDetails(Javadoc& javadoc) // Copy brief and details bool const copyBrief = copied->parts == doc::Parts::all || copied->parts == doc::Parts::brief; bool const copyDetails = copied->parts == doc::Parts::all || copied->parts == doc::Parts::description; - Javadoc const& src = *resPtr->javadoc; + Javadoc const& src = *res.javadoc; if (copyBrief && !javadoc.brief) { javadoc.brief = src.brief; @@ -639,6 +636,481 @@ checkExists(SymbolID const& id) const MRDOCS_ASSERT(corpus_.info_.contains(id)); } +void +JavadocFinalizer:: +generateOverloadJavadocs() +{ + for (auto& I: corpus_.info_) + { + if (auto* O = dynamic_cast(I.get())) + { + populateOverloadJavadocs(*O); + } + } +} + +namespace { +template +bool +populateOverloadsBriefIfAllSameBrief(OverloadsInfo& I, Range&& functionsWithBrief) +{ + auto first = *functionsWithBrief.begin(); + doc::Brief const& firstBrief = *first.javadoc->brief; + if (auto otherFunctions = std::views::drop(functionsWithBrief, 1); + std::ranges::all_of(otherFunctions, [&](FunctionInfo const& otherFunction) + { + doc::Brief const& otherBrief = *otherFunction.javadoc->brief; + return otherBrief == firstBrief; + })) + { + I.javadoc->brief = firstBrief; + return true; + } + return false; +} + +void +setBriefString(std::optional& brief, std::string_view str) { + brief.emplace(); + brief->children.emplace_back(MakePolymorphic(std::string(str))); +} + +bool +populateOverloadsFromClass(OverloadsInfo& I) +{ + switch (I.Class) + { + case FunctionClass::Normal: + return false; + case FunctionClass::Constructor: + { + setBriefString(I.javadoc->brief, "Constructors"); + return true; + } + case FunctionClass::Conversion: + { + setBriefString(I.javadoc->brief, "Conversion operators"); + return true; + } + case FunctionClass::Destructor: + default: + MRDOCS_UNREACHABLE(); + } +} + +template +bool +populateOverloadsFromOperator(OverloadsInfo& I, Range&& functions) +{ + if (I.OverloadedOperator == OperatorKind::None) + { + return false; + } + // An array of pairs describing the operator kind and the + // default brief string for that operator kind. + struct OperatorBrief { + OperatorKind kind = OperatorKind::None; + std::string_view brief; + std::string_view binaryBrief; + constexpr + OperatorBrief( + OperatorKind kind, + std::string_view brief, + std::string_view binaryBrief = "") + : kind(kind) + , brief(brief) + , binaryBrief(binaryBrief) {} + }; + static constexpr OperatorBrief operatorBriefs[] = { + {OperatorKind::Equal, "Assignment operators"}, + {OperatorKind::Star, "Dereference operators", "Multiplication operators"}, + {OperatorKind::Arrow, "Member access operators"}, + {OperatorKind::Exclaim, "Negation operators"}, + {OperatorKind::EqualEqual, "Equality operators"}, + {OperatorKind::ExclaimEqual, "Inequality operators"}, + {OperatorKind::Less, "Less-than operators"}, + {OperatorKind::LessEqual, "Less-than-or-equal operators"}, + {OperatorKind::Greater, "Greater-than operators"}, + {OperatorKind::GreaterEqual, "Greater-than-or-equal operators"}, + {OperatorKind::Spaceship, "Three-way comparison operators"}, + {OperatorKind::AmpAmp, "Conjunction operators"}, + {OperatorKind::PipePipe, "Disjunction operators"}, + {OperatorKind::PlusPlus, "Increment operators"}, + {OperatorKind::MinusMinus, "Decrement operators"}, + {OperatorKind::Comma, "Comma operators"}, + {OperatorKind::ArrowStar, "Pointer-to-member operators"}, + {OperatorKind::Call, "Function call operators"}, + {OperatorKind::Subscript, "Subscript operators"}, + {OperatorKind::Conditional, "Ternary operators"}, + {OperatorKind::Coawait, "Coawait operators"}, + {OperatorKind::New, "New operators"}, + {OperatorKind::Delete, "Delete operators"}, + {OperatorKind::ArrayNew, "New array operators"}, + {OperatorKind::ArrayDelete, "Delete array operators"}, + {OperatorKind::Plus, "Unary plus operators", "Addition operators"}, + {OperatorKind::Minus, "Unary minus operators", "Subtraction operators"}, + {OperatorKind::Slash, "Division operators"}, + {OperatorKind::Percent, "Modulus operators"}, + {OperatorKind::Pipe, "Bitwise disjunction operators"}, + {OperatorKind::Caret, "Bitwise exclusive-or operators"}, + {OperatorKind::Tilde, "Bitwise negation operators"}, + {OperatorKind::PlusEqual, "Addition assignment operators"}, + {OperatorKind::MinusEqual, "Subtraction assignment operators"}, + {OperatorKind::StarEqual, "Multiplication assignment operators"}, + {OperatorKind::SlashEqual, "Division assignment operators"}, + {OperatorKind::PercentEqual, "Modulus assignment operators"}, + {OperatorKind::Amp, "Address-of operators", "Bitwise conjunction operators"}, + {OperatorKind::AmpEqual, "Bitwise conjunction assignment operators"}, + {OperatorKind::PipeEqual, "Bitwise disjunction assignment operators"}, + {OperatorKind::CaretEqual, "Bitwise exclusive-or assignment operators"}, + {OperatorKind::LessLess, "Left shift operators"}, + {OperatorKind::GreaterGreater, "Right shift operators"}, + {OperatorKind::LessLessEqual, "Left shift assignment operators"}, + {OperatorKind::GreaterGreaterEqual, "Right shift assignment operators"} + }; + for (auto const& [kind, brief, binaryBrief]: operatorBriefs) + { + MRDOCS_CHECK_OR_CONTINUE(I.OverloadedOperator == kind); + + // The name for operator<< depends on the parameter types + if (kind == OperatorKind::LessLess) + { + // Check if all functions are Stream Operators: + // 1) Non-member function + // 2) First param is mutable reference + // 3) Return type is mutable reference of same type as first param + if (std::ranges::all_of(functions, + [&](FunctionInfo const& function) + { + MRDOCS_CHECK_OR(!function.IsRecordMethod, false); + MRDOCS_CHECK_OR(function.Params.size() == 2, false); + // Check first param is mutable left reference + auto& firstParam = function.Params[0]; + MRDOCS_CHECK_OR(firstParam, false); + auto& firstQualType = firstParam.Type; + MRDOCS_CHECK_OR(firstQualType, false); + MRDOCS_CHECK_OR(firstQualType->isLValueReference(), false); + auto& firstNamedType = get(firstQualType).PointeeType; + MRDOCS_CHECK_OR(firstNamedType, false); + MRDOCS_CHECK_OR(firstNamedType->isNamed(), false); + // Check return type + return firstQualType == function.ReturnType; + })) + { + setBriefString(I.javadoc->brief, "Stream insertion operators"); + } + else + { + // Regular brief as more generic left shift operator otherwise + setBriefString(I.javadoc->brief, brief); + } + return true; + } + + if (binaryBrief.empty()) + { + setBriefString(I.javadoc->brief, brief); + return true; + } + + if (std::ranges::all_of(functions, + [&](FunctionInfo const& function) + { + return (function.Params.size() + function.IsRecordMethod) == 2; + })) + { + setBriefString(I.javadoc->brief, binaryBrief); + return true; + } + + if (std::ranges::all_of(functions, + [&](FunctionInfo const& function) + { + return (function.Params.size() + function.IsRecordMethod) == 1; + })) + { + setBriefString(I.javadoc->brief, brief); + return true; + } + return false; + } + return false; +} + +bool +populateOverloadsFromFunctionName(OverloadsInfo& I) +{ + std::string name = I.Name; + if (name.empty() && + I.OverloadedOperator != OperatorKind::None) + { + name = getOperatorName(I.OverloadedOperator, true); + } + if (name.empty()) + { + return false; + } + I.javadoc->brief.emplace(); + I.javadoc->brief->children.emplace_back(MakePolymorphic(std::string(name), doc::Style::mono)); + I.javadoc->brief->children.emplace_back(MakePolymorphic(std::string(" overloads"))); + return true; +} + +template +void +populateOverloadsBrief(OverloadsInfo& I, Range&& functions) +{ + auto functionsWithBrief = std::views::filter(functions, + [](FunctionInfo const& function) + { + return + function.javadoc && + function.javadoc->brief && + !function.javadoc->brief->empty(); + }); + if (std::ranges::empty(functionsWithBrief)) + { + return; + } + MRDOCS_CHECK_OR(!populateOverloadsBriefIfAllSameBrief(I, functionsWithBrief)); + MRDOCS_CHECK_OR(!populateOverloadsFromClass(I)); + MRDOCS_CHECK_OR(!populateOverloadsFromOperator(I, functions)); + MRDOCS_CHECK_OR(!populateOverloadsFromFunctionName(I)); +} + +template +void +populateOverloadsReturns(OverloadsInfo& I, Range&& functions) { + auto functionReturns = functions | + std::views::filter([](FunctionInfo const& function) + { + return function.javadoc && !function.javadoc->returns.empty(); + }) | + std::views::transform([](FunctionInfo const& function) + { + return function.javadoc->returns; + }) | + std::views::join; + for (doc::Returns const& functionReturn: functionReturns) + { + auto sameIt = std::ranges::find_if( + I.javadoc->returns, + [&functionReturn](doc::Returns const& overloadReturns) + { + return overloadReturns == functionReturn; + }); + if (sameIt == I.javadoc->returns.end()) + { + I.javadoc->returns.push_back(functionReturn); + } + } +} + +template +void +populateOverloadsParams(OverloadsInfo& I, Range& functions) { + auto functionParams = functions | + std::views::filter([](FunctionInfo const& function) + { + return function.javadoc && !function.javadoc->params.empty(); + }) | + std::views::transform([](FunctionInfo const& function) + { + return function.javadoc->params; + }) | + std::views::join; + for (doc::Param const& functionParam: functionParams) + { + auto sameIt = std::ranges::find_if( + I.javadoc->params, + [&functionParam](doc::Param const& overloadParam) + { + return overloadParam.name == functionParam.name; + }); + if (sameIt == I.javadoc->params.end()) + { + I.javadoc->params.push_back(functionParam); + } + } +} + +template +void +populateOverloadsTParams(OverloadsInfo& I, Range& functions) { + auto functionTParams = functions | + std::views::filter([](FunctionInfo const& function) + { + return function.javadoc && !function.javadoc->tparams.empty(); + }) | + std::views::transform([](FunctionInfo const& function) + { + return function.javadoc->tparams; + }) | + std::views::join; + for (doc::TParam const& functionTParam: functionTParams) + { + auto sameIt = std::ranges::find_if( + I.javadoc->tparams, + [&functionTParam](doc::TParam const& overloadTParam) + { + return overloadTParam.name == functionTParam.name; + }); + if (sameIt == I.javadoc->tparams.end()) + { + I.javadoc->tparams.push_back(functionTParam); + } + } +} + +template +void +populateOverloadsExceptions(OverloadsInfo& I, Range& functions) { + auto functionExceptions = functions | + std::views::filter([](FunctionInfo const& function) + { + return function.javadoc && !function.javadoc->exceptions.empty(); + }) | + std::views::transform([](FunctionInfo const& function) + { + return function.javadoc->exceptions; + }) | + std::views::join; + for (doc::Throws const& functionException: functionExceptions) + { + auto sameIt = std::ranges::find_if( + I.javadoc->exceptions, + [&functionException](doc::Throws const& overloadException) + { + return overloadException.exception.string == functionException.exception.string; + }); + if (sameIt == I.javadoc->exceptions.end()) + { + I.javadoc->exceptions.push_back(functionException); + } + } +} + +template +void +populateOverloadsSees(OverloadsInfo& I, Range& functions) { + auto functionSees = functions | + std::views::filter([](FunctionInfo const& function) + { + return function.javadoc && !function.javadoc->sees.empty(); + }) | + std::views::transform([](FunctionInfo const& function) + { + return function.javadoc->sees; + }) | + std::views::join; + for (doc::See const& functionSee: functionSees) + { + auto sameIt = std::ranges::find_if( + I.javadoc->sees, + [&functionSee](doc::See const& overloadSee) + { + return overloadSee.children == functionSee.children; + }); + if (sameIt == I.javadoc->sees.end()) + { + I.javadoc->sees.push_back(functionSee); + } + } +} + +template +void +populateOverloadsPreconditions(OverloadsInfo& I, Range& functions) { + auto functionsPres = functions | + std::views::filter([](FunctionInfo const& function) + { + return function.javadoc && !function.javadoc->preconditions.empty(); + }) | + std::views::transform([](FunctionInfo const& function) + { + return function.javadoc->preconditions; + }) | + std::views::join; + for (doc::Precondition const& functionPre: functionsPres) + { + auto sameIt = std::ranges::find_if( + I.javadoc->preconditions, + [&functionPre](doc::Precondition const& overloadPre) + { + return overloadPre.children == functionPre.children; + }); + if (sameIt == I.javadoc->preconditions.end()) + { + I.javadoc->preconditions.push_back(functionPre); + } + } +} + +template +void +populateOverloadsPostconditions(OverloadsInfo& I, Range& functions) { + auto functionsPosts = functions | + std::views::filter([](FunctionInfo const& function) + { + return function.javadoc && !function.javadoc->postconditions.empty(); + }) | + std::views::transform([](FunctionInfo const& function) + { + return function.javadoc->postconditions; + }) | + std::views::join; + for (doc::Postcondition const& functionPost: functionsPosts) + { + auto sameIt = std::ranges::find_if( + I.javadoc->postconditions, + [&functionPost](doc::Postcondition const& overloadPost) + { + return overloadPost.children == functionPost.children; + }); + if (sameIt == I.javadoc->postconditions.end()) + { + I.javadoc->postconditions.push_back(functionPost); + } + } +} +} // (anon) + + +void +JavadocFinalizer:: +populateOverloadJavadocs(OverloadsInfo& I) +{ + // Create a view all Info members of I + auto functions = + I.Members | + std::views::transform([&](SymbolID const& id) + { + return corpus_.find(id); + }) | + std::views::filter([](Info const* infoPtr) + { + return infoPtr != nullptr && infoPtr->isFunction(); + }) | + std::views::transform([](Info const* infoPtr) -> FunctionInfo const& + { + return *dynamic_cast(infoPtr); + }); + + I.javadoc.emplace(); + // blocks: we do not copy javadoc detail blocks because + // it's impossible to guarantee that the details for + // any of the functions make sense for all overloads + populateOverloadsBrief(I, functions); + populateOverloadsReturns(I, functions); + populateOverloadsParams(I, functions); + populateOverloadsTParams(I, functions); + populateOverloadsExceptions(I, functions); + populateOverloadsSees(I, functions); + populateOverloadsPreconditions(I, functions); + populateOverloadsPostconditions(I, functions); +} + + void JavadocFinalizer:: emitWarnings() @@ -648,6 +1120,7 @@ emitWarnings() warnDocErrors(); warnNoParamDocs(); warnUndocEnumValues(); + warnUnnamedParams(); // Print to the console auto const level = !corpus_.config->warnAsError ? report::Level::warn : report::Level::error; @@ -840,4 +1313,53 @@ warnUndocEnumValues() } } +void +JavadocFinalizer:: +warnUnnamedParams() +{ + MRDOCS_CHECK_OR(corpus_.config->warnUnnamedParam); + for (auto const& I : corpus_.info_) + { + MRDOCS_CHECK_OR_CONTINUE(I->isFunction()); + MRDOCS_CHECK_OR_CONTINUE(I->Extraction == ExtractionMode::Regular); + MRDOCS_CHECK_OR_CONTINUE(I->javadoc); + warnUnnamedParams(dynamic_cast(*I)); + } +} + +void +JavadocFinalizer:: +warnUnnamedParams(FunctionInfo const& I) +{ + auto orderSuffix = [](std::size_t const i) -> std::string + { + if (i == 0) + { + return "st"; + } + if (i == 1) + { + return "nd"; + } + if (i == 2) + { + return "rd"; + } + return "th"; + }; + + for (std::size_t i = 0; i < I.Params.size(); ++i) + { + if (I.Params[i].Name.empty()) + { + this->warn( + *getPrimaryLocation(I), + "{}: {}{} parameter is unnamed", + corpus_.Corpus::qualifiedName(I), + i + 1, + orderSuffix(i)); + } + } +} + } // clang::mrdocs diff --git a/src/lib/Metadata/Finalizers/JavadocFinalizer.hpp b/src/lib/Metadata/Finalizers/JavadocFinalizer.hpp index ae720cda4..1883b2366 100644 --- a/src/lib/Metadata/Finalizers/JavadocFinalizer.hpp +++ b/src/lib/Metadata/Finalizers/JavadocFinalizer.hpp @@ -91,6 +91,7 @@ class JavadocFinalizer MRDOCS_CHECK_OR_CONTINUE(I->Extraction != ExtractionMode::Dependency); visit(*I, *this); } + generateOverloadJavadocs(); emitWarnings(); } @@ -202,6 +203,12 @@ class JavadocFinalizer })); } + void + generateOverloadJavadocs(); + + void + populateOverloadJavadocs(OverloadsInfo&); + void emitWarnings(); @@ -246,6 +253,12 @@ class JavadocFinalizer void warnUndocEnumValues(); + + void + warnUnnamedParams(); + + void + warnUnnamedParams(FunctionInfo const& I); }; } // clang::mrdocs diff --git a/src/lib/Metadata/Finalizers/SortMembersFinalizer.cpp b/src/lib/Metadata/Finalizers/SortMembersFinalizer.cpp index 0ad4e12c1..0a86574f4 100644 --- a/src/lib/Metadata/Finalizers/SortMembersFinalizer.cpp +++ b/src/lib/Metadata/Finalizers/SortMembersFinalizer.cpp @@ -119,7 +119,8 @@ struct SymbolIDCompareFn *lhsOp == OperatorKind::Greater || *lhsOp == OperatorKind::LessEqual || *lhsOp == OperatorKind::GreaterEqual || - *lhsOp == OperatorKind::Spaceship); + *lhsOp == OperatorKind::Spaceship || + *lhsOp == OperatorKind::LessLess); bool const rhsIsRel = rhsOp && ( *rhsOp == OperatorKind::Exclaim || *rhsOp == OperatorKind::EqualEqual || @@ -128,7 +129,8 @@ struct SymbolIDCompareFn *rhsOp == OperatorKind::Greater || *rhsOp == OperatorKind::LessEqual || *rhsOp == OperatorKind::GreaterEqual || - *rhsOp == OperatorKind::Spaceship); + *rhsOp == OperatorKind::Spaceship || + *rhsOp == OperatorKind::LessLess); if (lhsIsRel != rhsIsRel) { return !lhsIsRel; diff --git a/src/lib/Metadata/Javadoc.cpp b/src/lib/Metadata/Javadoc.cpp index b5c0b8f70..6be625954 100644 --- a/src/lib/Metadata/Javadoc.cpp +++ b/src/lib/Metadata/Javadoc.cpp @@ -73,6 +73,25 @@ toString( } } +std::strong_ordering +operator<=>(Polymorphic const& lhs, Polymorphic const& rhs) +{ + if (lhs && rhs) + { + if (lhs->Kind == rhs->Kind) + { + return visit(*lhs, detail::VisitCompareFn(*rhs)); + } + return lhs->Kind <=> rhs->Kind; + } + if (!lhs && !rhs) + { + return std::strong_ordering::equal; + } + return !lhs ? std::strong_ordering::less + : std::strong_ordering::greater; +} + } // doc //------------------------------------------------ diff --git a/src/lib/Metadata/Name.cpp b/src/lib/Metadata/Name.cpp index c0557e751..bb8b9e63a 100644 --- a/src/lib/Metadata/Name.cpp +++ b/src/lib/Metadata/Name.cpp @@ -54,6 +54,10 @@ operator<=>(Polymorphic const& lhs, Polymorphic const& rhs) } return lhs->Kind <=> rhs->Kind; } + if (!lhs && !rhs) + { + return std::strong_ordering::equal; + } return !lhs ? std::strong_ordering::less : std::strong_ordering::greater; } diff --git a/test-files/golden-tests/config/sort/sort-members.adoc b/test-files/golden-tests/config/sort/sort-members.adoc index 71fab1f01..d3b529cb0 100644 --- a/test-files/golden-tests/config/sort/sort-members.adoc +++ b/test-files/golden-tests/config/sort/sort-members.adoc @@ -23,16 +23,28 @@ |=== === Functions -[cols=1] +[cols=2] |=== -| Name +| Name | Description | <> +| + | <> +| + | <> +| + | <> +| + | <> +| + | <> +| + |=== [#A] @@ -197,18 +209,34 @@ struct Z; === Member Functions -[cols=1] +[cols=2] |=== -| Name +| Name | Description | <> [.small]#[constructor]# +| + | <> [.small]#[destructor]# +| + | <> +| + | <> +| + | <> +| + | <> +| + | <> +| + | <> +| + |=== @@ -217,11 +245,13 @@ struct Z; == <>::Z -=== Synopsis +=== Synopses Declared in `<sort‐members.cpp>` + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- <>(); @@ -229,6 +259,8 @@ Declared in `<sort‐members.cpp>` [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- <>(int); @@ -386,11 +418,13 @@ f(); == g -=== Synopsis +=== Synopses Declared in `<sort‐members.cpp>` + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void @@ -399,6 +433,8 @@ void [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- char @@ -407,6 +443,8 @@ char [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- char @@ -415,6 +453,8 @@ char [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- char @@ -425,6 +465,8 @@ char [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- char @@ -436,6 +478,8 @@ char [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class T> @@ -448,6 +492,8 @@ char [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<> diff --git a/test-files/golden-tests/config/sort/sort-members.html b/test-files/golden-tests/config/sort/sort-members.html index 4b187eaef..1606ce84e 100644 --- a/test-files/golden-tests/config/sort/sort-members.html +++ b/test-files/golden-tests/config/sort/sort-members.html @@ -33,17 +33,23 @@

Functions

- + - - - - - - + + + + + +
NameNameDescription
f
g
h
operator!
operator==
operator!=
f +
g +
h +
operator! +
operator== +
operator!= +
@@ -211,19 +217,27 @@

Member Functions

- + - - - - - - - - + + + + + + + +
NameNameDescription
Z [constructor]
~Z [destructor]
foo
operator bool
operator!
operator==
operator!=
operator<=>
Z [constructor] +
~Z [destructor] +
foo +
operator bool +
operator! +
operator== +
operator!= +
operator<=> +
@@ -234,15 +248,19 @@

Member Functions

Z::Z

-

Synopsis

+

Synopses

Declared in <sort-members.cpp>
+ +
 
 Z();
 
 
» more... + +
 
 Z(int);
@@ -413,9 +431,11 @@ 

Synopsis

g

-

Synopsis

+

Synopses

Declared in <sort-members.cpp>
+ +
 
 void
@@ -423,6 +443,8 @@ 

Synopsis

» more... + +
 
 char
@@ -430,6 +452,8 @@ 

Synopsis

» more... + +
 
 char
@@ -437,6 +461,8 @@ 

Synopsis

» more... + +
 
 char
@@ -446,6 +472,8 @@ 

Synopsis

» more... + +
 
 char
@@ -456,6 +484,8 @@ 

Synopsis

» more... + +
 
 template<class T>
@@ -467,6 +497,8 @@ 

Synopsis

» more... + +
 
 template<>
diff --git a/test-files/golden-tests/config/sort/unordered.adoc b/test-files/golden-tests/config/sort/unordered.adoc
index 553765412..cf5d1d2d3 100644
--- a/test-files/golden-tests/config/sort/unordered.adoc
+++ b/test-files/golden-tests/config/sort/unordered.adoc
@@ -23,16 +23,28 @@
 |===
 === Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <> 
+| 
+
 | <> 
+| 
+
 | <> 
+| 
+
 | <> 
+| 
+
 | <> 
+| 
+
 | <> 
+| 
+
 |===
 
 [#D]
@@ -197,18 +209,34 @@ struct Z;
 
 === Member Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <> 
+| 
+
 | <> 
+| 
+
 | <> 
+| 
+
 | <> 
+| 
+
 | <> 
+| 
+
 | <> 
+| 
+
 | <> [.small]#[destructor]#
+| 
+
 | <>         [.small]#[constructor]#
+| 
+
 |===
 
 
@@ -320,11 +348,13 @@ Declared in `<unordered.cpp>`
 == <>::Z
 
 
-=== Synopsis
+=== Synopses
 
 
 Declared in `<unordered.cpp>`
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 <>(int);
@@ -332,6 +362,8 @@ Declared in `<unordered.cpp>`
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 <>();
@@ -435,11 +467,13 @@ h();
 == g
 
 
-=== Synopsis
+=== Synopses
 
 
 Declared in `<unordered.cpp>`
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<class T>
@@ -452,6 +486,8 @@ char
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<>
@@ -464,6 +500,8 @@ char
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 char
@@ -475,6 +513,8 @@ char
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 char
@@ -485,6 +525,8 @@ char
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 char
@@ -493,6 +535,8 @@ char
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 char
@@ -501,6 +545,8 @@ char
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 void
diff --git a/test-files/golden-tests/config/sort/unordered.html b/test-files/golden-tests/config/sort/unordered.html
index 6c0120d59..0c24bcce3 100644
--- a/test-files/golden-tests/config/sort/unordered.html
+++ b/test-files/golden-tests/config/sort/unordered.html
@@ -33,17 +33,23 @@ 

Functions

- + - - - - - - + + + + + +
NameNameDescription
operator!=
operator==
operator!
h
g
f
operator!= +
operator== +
operator! +
h +
g +
f +
@@ -211,19 +217,27 @@

Member Functions

- + - - - - - - - - + + + + + + + +
NameNameDescription
operator<=>
operator!=
operator==
operator!
operator bool
foo
~Z [destructor]
Z [constructor]
operator<=> +
operator!= +
operator== +
operator! +
operator bool +
foo +
~Z [destructor] +
Z [constructor] +
@@ -344,15 +358,19 @@

Synopsis

Z::Z

-

Synopsis

+

Synopses

Declared in <unordered.cpp>
+ +
 
 Z(int);
 
 
» more... + +
 
 Z();
@@ -465,9 +483,11 @@ 

Synopsis

g

-

Synopsis

+

Synopses

Declared in <unordered.cpp>
+ +
 
 template<class T>
@@ -479,6 +499,8 @@ 

Synopsis

» more... + +
 
 template<>
@@ -490,6 +512,8 @@ 

Synopsis

» more... + +
 
 char
@@ -500,6 +524,8 @@ 

Synopsis

» more... + +
 
 char
@@ -509,6 +535,8 @@ 

Synopsis

» more... + +
 
 char
@@ -516,6 +544,8 @@ 

Synopsis

» more... + +
 
 char
@@ -523,6 +553,8 @@ 

Synopsis

» more... + +
 
 void
diff --git a/test-files/golden-tests/metadata/empty.adoc b/test-files/golden-tests/core/empty.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/empty.adoc
rename to test-files/golden-tests/core/empty.adoc
diff --git a/test-files/golden-tests/metadata/empty.cpp b/test-files/golden-tests/core/empty.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/empty.cpp
rename to test-files/golden-tests/core/empty.cpp
diff --git a/test-files/golden-tests/metadata/empty.html b/test-files/golden-tests/core/empty.html
similarity index 100%
rename from test-files/golden-tests/metadata/empty.html
rename to test-files/golden-tests/core/empty.html
diff --git a/test-files/golden-tests/metadata/empty.xml b/test-files/golden-tests/core/empty.xml
similarity index 100%
rename from test-files/golden-tests/metadata/empty.xml
rename to test-files/golden-tests/core/empty.xml
diff --git a/test-files/golden-tests/javadoc/brief/brief-3.adoc b/test-files/golden-tests/javadoc/brief/brief-3.adoc
index eca2988c9..824005bab 100644
--- a/test-files/golden-tests/javadoc/brief/brief-3.adoc
+++ b/test-files/golden-tests/javadoc/brief/brief-3.adoc
@@ -7,22 +7,29 @@
 
 === Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <> 
+| `f` overloads
+
 |===
 
 [#f-0e]
 == f
 
 
-=== Synopsis
+`f` overloads
+
+=== Synopses
 
 
 Declared in `<brief‐3.cpp>`
 
+Integer overload.
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 void
@@ -31,6 +38,9 @@ void
 
 [.small]#<>#
 
+Integer overload.
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 void
@@ -39,6 +49,9 @@ void
 
 [.small]#<>#
 
+C string overload.
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 void
@@ -47,6 +60,9 @@ void
 
 [.small]#<>#
 
+C string overload.
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 void
diff --git a/test-files/golden-tests/javadoc/brief/brief-3.html b/test-files/golden-tests/javadoc/brief/brief-3.html
index e3ed536e5..ed3fc502d 100644
--- a/test-files/golden-tests/javadoc/brief/brief-3.html
+++ b/test-files/golden-tests/javadoc/brief/brief-3.html
@@ -13,23 +13,36 @@ 

Functions

- + - +
NameNameDescription
f
f f overloads + +

f

+
+f overloads + + +
-

Synopsis

+

Synopses

Declared in <brief-3.cpp>
+

+ Integer overload. + +

+ +
 
 void
@@ -37,6 +50,12 @@ 

Synopsis

» more... +

+ Integer overload. + +

+ +
 
 void
@@ -44,6 +63,12 @@ 

Synopsis

» more... +

+ C string overload. + +

+ +
 
 void
@@ -51,6 +76,12 @@ 

Synopsis

» more... +

+ C string overload. + +

+ +
 
 void
diff --git a/test-files/golden-tests/javadoc/copydoc/copydoc.adoc b/test-files/golden-tests/javadoc/copybrief/copybrief.adoc
similarity index 82%
rename from test-files/golden-tests/javadoc/copydoc/copydoc.adoc
rename to test-files/golden-tests/javadoc/copybrief/copybrief.adoc
index d90dfa02a..3efb894da 100644
--- a/test-files/golden-tests/javadoc/copydoc/copydoc.adoc
+++ b/test-files/golden-tests/javadoc/copybrief/copybrief.adoc
@@ -31,7 +31,7 @@ brief1
 === Synopsis
 
 
-Declared in `<copydoc.cpp>`
+Declared in `<copybrief.cpp>`
 
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
@@ -48,7 +48,7 @@ brief1
 === Synopsis
 
 
-Declared in `<copydoc.cpp>`
+Declared in `<copybrief.cpp>`
 
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
@@ -65,7 +65,7 @@ brief1
 === Synopsis
 
 
-Declared in `<copydoc.cpp>`
+Declared in `<copybrief.cpp>`
 
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
diff --git a/test-files/golden-tests/javadoc/copydoc/copydoc.cpp b/test-files/golden-tests/javadoc/copybrief/copybrief.cpp
similarity index 100%
rename from test-files/golden-tests/javadoc/copydoc/copydoc.cpp
rename to test-files/golden-tests/javadoc/copybrief/copybrief.cpp
diff --git a/test-files/golden-tests/javadoc/copydoc/copydoc.html b/test-files/golden-tests/javadoc/copybrief/copybrief.html
similarity index 89%
rename from test-files/golden-tests/javadoc/copydoc/copydoc.html
rename to test-files/golden-tests/javadoc/copybrief/copybrief.html
index 42151f548..fb210df65 100644
--- a/test-files/golden-tests/javadoc/copydoc/copydoc.html
+++ b/test-files/golden-tests/javadoc/copybrief/copybrief.html
@@ -42,7 +42,7 @@ 

f1

Synopsis

-Declared in <copydoc.cpp>
+Declared in <copybrief.cpp>
 
 void
@@ -63,7 +63,7 @@ 

f2

Synopsis

-Declared in <copydoc.cpp>
+Declared in <copybrief.cpp>
 
 void
@@ -84,7 +84,7 @@ 

f3

Synopsis

-Declared in <copydoc.cpp>
+Declared in <copybrief.cpp>
 
 void
diff --git a/test-files/golden-tests/javadoc/copydoc/copydoc.xml b/test-files/golden-tests/javadoc/copybrief/copybrief.xml
similarity index 77%
rename from test-files/golden-tests/javadoc/copydoc/copydoc.xml
rename to test-files/golden-tests/javadoc/copybrief/copybrief.xml
index 20744e8d4..f968a0dc8 100644
--- a/test-files/golden-tests/javadoc/copydoc/copydoc.xml
+++ b/test-files/golden-tests/javadoc/copybrief/copybrief.xml
@@ -3,7 +3,7 @@
        xsi:noNamespaceSchemaLocation="https://github.com/cppalliance/mrdocs/raw/develop/mrdocs.rnc">
 
   
-    
+    
     
       
         brief1
@@ -11,7 +11,7 @@
     
   
   
-    
+    
     
       
         brief1
@@ -19,7 +19,7 @@
     
   
   
-    
+    
     
       
         brief1
diff --git a/test-files/golden-tests/javadoc/copydetails/copydetails.adoc b/test-files/golden-tests/javadoc/copydetails/copydetails.adoc
new file mode 100644
index 000000000..b8e710b6b
--- /dev/null
+++ b/test-files/golden-tests/javadoc/copydetails/copydetails.adoc
@@ -0,0 +1,319 @@
+= Reference
+:mrdocs:
+
+[#index]
+== Global namespace
+
+
+=== Functions
+
+[cols=2]
+|===
+| Name | Description 
+
+| <> 
+| Destination doc function
+
+| <> 
+| Destination doc function
+
+| <> 
+| Source doc function
+
+|===
+
+[#dest]
+== dest
+
+
+Destination doc function
+
+=== Synopsis
+
+
+Declared in `<copydetails.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+template<
+    class A,
+    class B>
+int
+dest(
+    int a,
+    int b);
+----
+
+=== Description
+
+
+Documentation prefix for dest only.
+
+This is the documentation from the    source function.
+
+Documentation suffix for dest only.
+
+
+
+=== Return Value
+
+
+A nice integer
+
+=== Template Parameters
+
+
+|===
+| Name | Description
+
+| *A*
+| The template parameter A.
+
+| *B*
+| The template parameter B.
+
+|===
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| The parameter a.
+
+| *b*
+| The parameter b.
+
+|===
+
+=== Preconditions
+
+
+* a must be greater than 0.
+
+
+
+=== Postconditions
+
+
+* The return value is greater than 0.
+
+
+
+=== See Also
+
+
+dest
+
+
+
+
+[#destOverride]
+== destOverride
+
+
+Destination doc function
+
+=== Synopsis
+
+
+Declared in `<copydetails.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+template<
+    class A,
+    class C,
+    class D>
+int
+destOverride(
+    int a,
+    int c,
+    int d);
+----
+
+=== Description
+
+
+Documentation prefix for dest only.
+
+This is the documentation from the    source function.
+
+Documentation suffix for dest only.
+
+Parameter b is not copied because    it doesn't exist in the destination function.
+
+
+
+=== Exceptions
+
+
+|===
+| Name | Thrown on
+
+| `std::runtime_error`
+| Overwrites the exception.
+
+|===
+
+=== Return Value
+
+
+An integer meaning something else.
+
+=== Template Parameters
+
+
+|===
+| Name | Description
+
+| *A*
+| Overwrites the template parameter A.
+
+| *C*
+| The template parameter C.
+
+| *D*
+| The template parameter D.
+
+|===
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Overwrites the parameter a.
+
+| *c*
+| The parameter c.
+
+| *d*
+| The parameter d.
+
+|===
+
+=== Preconditions
+
+
+* overriden precondition
+
+
+
+=== Postconditions
+
+
+* overriden postcondition
+
+
+
+=== See Also
+
+
+source
+
+
+
+
+[#source]
+== source
+
+
+Source doc function
+
+=== Synopsis
+
+
+Declared in `<copydetails.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+template<
+    class A,
+    class B>
+int
+source(
+    int a,
+    int b);
+----
+
+=== Description
+
+
+This is the documentation from the    source function.
+
+
+
+=== Exceptions
+
+
+|===
+| Name | Thrown on
+
+| `std::runtime_error`
+| If something goes wrong.
+
+|===
+
+=== Return Value
+
+
+A nice integer
+
+=== Template Parameters
+
+
+|===
+| Name | Description
+
+| *A*
+| The template parameter A.
+
+| *B*
+| The template parameter B.
+
+|===
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| The parameter a.
+
+| *b*
+| The parameter b.
+
+|===
+
+=== Preconditions
+
+
+* a must be greater than 0.
+
+
+
+=== Postconditions
+
+
+* The return value is greater than 0.
+
+
+
+=== See Also
+
+
+dest
+
+
+
+
+
+
+[.small]#Created with https://www.mrdocs.com[MrDocs]#
diff --git a/test-files/golden-tests/javadoc/copydetails/copydetails.cpp b/test-files/golden-tests/javadoc/copydetails/copydetails.cpp
new file mode 100644
index 000000000..6d4aa47cb
--- /dev/null
+++ b/test-files/golden-tests/javadoc/copydetails/copydetails.cpp
@@ -0,0 +1,87 @@
+/*
+    Copy details has special behavior for
+    documentation detail blocks and for metadata.
+
+    Unlike copybrief, the details should go
+    exactly where the copydetails command is
+    found.
+
+    In terms of metadata (returns, params, etc),
+    only non-ambiguous metadata should be copied.
+
+    In the general case, only metadata that not
+    already present in the destination should be
+    copied. If the destination already provides
+    preconditions, postconditions, sees, and
+    returns documentation, the copydetails command
+    should be ignored for these fields.
+
+    In the case of parameters and template parameters,
+    only those that are not already present in the
+    destination AND exist in the destination symbol
+    declaration should be copied.
+ */
+
+/** Source doc function
+
+    This is the documentation from the
+    source function.
+
+    @pre a must be greater than 0.
+    @post The return value is greater than 0.
+
+    @throws std::runtime_error If something goes wrong.
+
+    @tparam A The template parameter A.
+    @tparam B The template parameter B.
+    @param a The parameter a.
+    @param b The parameter b.
+    @return A nice integer
+
+    @see dest
+ */
+template 
+int
+source(int a, int b);
+
+/** Destination doc function
+
+    Documentation prefix for dest only.
+
+    @copydetails source
+
+    Documentation suffix for dest only.
+ */
+template 
+int
+dest(int a, int b);
+
+/** Destination doc function
+
+    Documentation prefix for dest only.
+
+    @copydetails source
+
+    Documentation suffix for dest only.
+
+    Parameter b is not copied because
+    it doesn't exist in the destination function.
+
+    @pre overriden precondition
+    @post overriden postcondition
+
+    @throws std::runtime_error Overwrites the exception.
+
+    @tparam A Overwrites the template parameter A.
+    @tparam C The template parameter C.
+    @tparam D The template parameter D.
+    @param a Overwrites the parameter a.
+    @param c The parameter c.
+    @param d The parameter d.
+    @return An integer meaning something else.
+
+    @see source
+ */
+template 
+int
+destOverride(int a, int c, int d);
diff --git a/test-files/golden-tests/javadoc/copydetails/copydetails.html b/test-files/golden-tests/javadoc/copydetails/copydetails.html
new file mode 100644
index 000000000..bc8f3161d
--- /dev/null
+++ b/test-files/golden-tests/javadoc/copydetails/copydetails.html
@@ -0,0 +1,398 @@
+
+
+Reference
+
+
+
+

Reference

+
+
+

Global namespace

+
+

Functions

+ + + + + + + + + + + + +
NameDescription
dest Destination doc function + +
destOverride Destination doc function + +
source Source doc function + +
+
+
+
+

dest

+
+Destination doc function + + +
+
+
+

Synopsis

+
+Declared in <copydetails.cpp>
+
+
+template<
+    class A,
+    class B>
+int
+dest(
+    int a,
+    int b);
+
+
+
+
+

Description

+

Documentation prefix for dest only.

+

This is the documentation from the source function.

+

Documentation suffix for dest only.

+ + +
+
+

Return Value

+

A nice integer

+ +
+
+

Template Parameters

+ + + + + + + + + + + + + + + + + +
NameDescription
A

The template parameter A.

+
B

The template parameter B.

+
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + +
NameDescription
a

The parameter a.

+
b

The parameter b.

+
+
+
+

Preconditions

+
    +
  • a must be greater than 0.

    +
  • +
+
+
+

Postconditions

+
    +
  • The return value is greater than 0.

    +
  • +
+
+
+

See Also

+

dest

+

+
+
+
+
+

destOverride

+
+Destination doc function + + +
+
+
+

Synopsis

+
+Declared in <copydetails.cpp>
+
+
+template<
+    class A,
+    class C,
+    class D>
+int
+destOverride(
+    int a,
+    int c,
+    int d);
+
+
+
+
+

Description

+

Documentation prefix for dest only.

+

This is the documentation from the source function.

+

Documentation suffix for dest only.

+

Parameter b is not copied because it doesn't exist in the destination function.

+ + +
+
+

Exceptions

+ + + + + + + + + + + + + +
NameThrown on
std::runtime_error

Overwrites the exception.

+
+
+
+

Return Value

+

An integer meaning something else.

+ +
+
+

Template Parameters

+ + + + + + + + + + + + + + + + + + + + + +
NameDescription
A

Overwrites the template parameter A.

+
C

The template parameter C.

+
D

The template parameter D.

+
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + +
NameDescription
a

Overwrites the parameter a.

+
c

The parameter c.

+
d

The parameter d.

+
+
+
+

Preconditions

+
    +
  • overriden precondition

    +
  • +
+
+
+

Postconditions

+
    +
  • overriden postcondition

    +
  • +
+
+
+

See Also

+

source

+

+
+
+
+
+

source

+
+Source doc function + + +
+
+
+

Synopsis

+
+Declared in <copydetails.cpp>
+
+
+template<
+    class A,
+    class B>
+int
+source(
+    int a,
+    int b);
+
+
+
+
+

Description

+

This is the documentation from the source function.

+ + +
+
+

Exceptions

+ + + + + + + + + + + + + +
NameThrown on
std::runtime_error

If something goes wrong.

+
+
+
+

Return Value

+

A nice integer

+ +
+
+

Template Parameters

+ + + + + + + + + + + + + + + + + +
NameDescription
A

The template parameter A.

+
B

The template parameter B.

+
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + +
NameDescription
a

The parameter a.

+
b

The parameter b.

+
+
+
+

Preconditions

+
    +
  • a must be greater than 0.

    +
  • +
+
+
+

Postconditions

+
    +
  • The return value is greater than 0.

    +
  • +
+
+
+

See Also

+

dest

+

+
+
+ +
+
+

Created with MrDocs

+
+ + \ No newline at end of file diff --git a/test-files/golden-tests/javadoc/copydetails/copydetails.xml b/test-files/golden-tests/javadoc/copydetails/copydetails.xml new file mode 100644 index 000000000..c7c30cf35 --- /dev/null +++ b/test-files/golden-tests/javadoc/copydetails/copydetails.xml @@ -0,0 +1,181 @@ + + + + + + + + diff --git a/test-files/golden-tests/javadoc/ref/operator-param.adoc b/test-files/golden-tests/javadoc/ref/operator-param.adoc index 7c60c5634..fb47b9a37 100644 --- a/test-files/golden-tests/javadoc/ref/operator-param.adoc +++ b/test-files/golden-tests/javadoc/ref/operator-param.adoc @@ -30,11 +30,13 @@ struct A; === Member Functions -[cols=1] +[cols=2] |=== -| Name +| Name | Description | <> +| Return true if ch is in the character set. + |=== @@ -43,11 +45,15 @@ struct A; == <>::operator() -=== Synopsis +Return true if ch is in the character set. + +=== Synopses Declared in `<operator‐param.cpp>` + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr @@ -57,6 +63,9 @@ bool [.small]#<># +Return true if ch is in the character set. + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr @@ -66,6 +75,11 @@ bool [.small]#<># +=== Return Value + + +True if ch is in the set, otherwise false. + === Parameters diff --git a/test-files/golden-tests/javadoc/ref/operator-param.html b/test-files/golden-tests/javadoc/ref/operator-param.html index 2db8b846d..e1402e279 100644 --- a/test-files/golden-tests/javadoc/ref/operator-param.html +++ b/test-files/golden-tests/javadoc/ref/operator-param.html @@ -40,12 +40,14 @@

Member Functions

- + - +
NameNameDescription
operator()
operator() Return true if ch is in the character set. + +
@@ -54,11 +56,18 @@

Member Functions

A::operator()

+
+Return true if ch is in the character set. + + +
-

Synopsis

+

Synopses

Declared in <operator-param.cpp>
+ +
 
 constexpr
@@ -67,6 +76,12 @@ 

Synopsis

» more... +

+ Return true if ch is in the character set. + +

+ +
 
 constexpr
@@ -76,6 +91,11 @@ 

Synopsis

» more... +
+
+

Return Value

+

True if ch is in the set, otherwise false.

+

Parameters

diff --git a/test-files/golden-tests/javadoc/ref/ref.adoc b/test-files/golden-tests/javadoc/ref/ref.adoc index f408ff46b..fcc4c079a 100644 --- a/test-files/golden-tests/javadoc/ref/ref.adoc +++ b/test-files/golden-tests/javadoc/ref/ref.adoc @@ -321,7 +321,6 @@ struct F; | <> | <> | <> -| <> | <> | <> | <> @@ -332,6 +331,7 @@ struct F; | <> | <> | <> +| <> | <> | <> | <> @@ -644,21 +644,6 @@ void operator/=(<>&); ---- -[#F-operator_lshift] -== <>::operator<< - - -=== Synopsis - - -Declared in `<ref.cpp>` - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -void -operator<<(<>&); ----- - [#F-operator_lshift_eq] == <>::operator<<= @@ -809,6 +794,21 @@ void operator~(); ---- +[#F-operator_lshift] +== <>::operator<< + + +=== Synopsis + + +Declared in `<ref.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +operator<<(<>&); +---- + [#F-operator_not] == <>::operator! diff --git a/test-files/golden-tests/javadoc/ref/ref.html b/test-files/golden-tests/javadoc/ref/ref.html index 0d72c3875..62a246515 100644 --- a/test-files/golden-tests/javadoc/ref/ref.html +++ b/test-files/golden-tests/javadoc/ref/ref.html @@ -370,7 +370,6 @@

Member Functions

operator->* operator/ operator/= -operator<< operator<<= operator>> operator>>= @@ -381,6 +380,7 @@

Member Functions

operator|= operator|| operator~ +operator<< operator! operator== operator!= @@ -716,22 +716,6 @@

Synopsis

-

F::operator<<

-
-
-

Synopsis

-
-Declared in <ref.cpp>
-
-
-void
-operator<<(F&);
-
-
-
-
-
-

F::operator<<=

@@ -892,6 +876,22 @@

Synopsis

+

F::operator<<

+
+
+

Synopsis

+
+Declared in <ref.cpp>
+
+
+void
+operator<<(F&);
+
+
+
+
+
+

F::operator!

diff --git a/test-files/golden-tests/javadoc/ref/ref.xml b/test-files/golden-tests/javadoc/ref/ref.xml index 16941ef93..36e03d334 100644 --- a/test-files/golden-tests/javadoc/ref/ref.xml +++ b/test-files/golden-tests/javadoc/ref/ref.xml @@ -245,15 +245,6 @@ - - - - - - - - - @@ -339,6 +330,15 @@ + + + + + + + + + diff --git a/test-files/golden-tests/metadata/mrdocs.yml b/test-files/golden-tests/metadata/mrdocs.yml deleted file mode 100644 index d91e2b2f9..000000000 --- a/test-files/golden-tests/metadata/mrdocs.yml +++ /dev/null @@ -1,6 +0,0 @@ -#ignore-failures: true -concurrency: 1 -source-root: . -single-page: true -input: - - . diff --git a/test-files/golden-tests/metadata/concept.adoc b/test-files/golden-tests/symbols/concept/concept.adoc similarity index 100% rename from test-files/golden-tests/metadata/concept.adoc rename to test-files/golden-tests/symbols/concept/concept.adoc diff --git a/test-files/golden-tests/metadata/concept.cpp b/test-files/golden-tests/symbols/concept/concept.cpp similarity index 100% rename from test-files/golden-tests/metadata/concept.cpp rename to test-files/golden-tests/symbols/concept/concept.cpp diff --git a/test-files/golden-tests/metadata/concept.html b/test-files/golden-tests/symbols/concept/concept.html similarity index 100% rename from test-files/golden-tests/metadata/concept.html rename to test-files/golden-tests/symbols/concept/concept.html diff --git a/test-files/golden-tests/metadata/concept.xml b/test-files/golden-tests/symbols/concept/concept.xml similarity index 100% rename from test-files/golden-tests/metadata/concept.xml rename to test-files/golden-tests/symbols/concept/concept.xml diff --git a/test-files/golden-tests/metadata/requires-clause.adoc b/test-files/golden-tests/symbols/concept/requires-clause.adoc similarity index 97% rename from test-files/golden-tests/metadata/requires-clause.adoc rename to test-files/golden-tests/symbols/concept/requires-clause.adoc index ee9509bf3..8f400f0e1 100644 --- a/test-files/golden-tests/metadata/requires-clause.adoc +++ b/test-files/golden-tests/symbols/concept/requires-clause.adoc @@ -16,12 +16,16 @@ |=== === Functions -[cols=1] +[cols=2] |=== -| Name +| Name | Description | <> +| + | <> +| + |=== [#A-0c] @@ -83,11 +87,13 @@ requires (sizeof(U) == 2); == g -=== Synopsis +=== Synopses Declared in `<requires‐clause.cpp>` + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename T> @@ -98,6 +104,8 @@ void [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename T> @@ -108,6 +116,8 @@ void [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<typename U> diff --git a/test-files/golden-tests/metadata/requires-clause.cpp b/test-files/golden-tests/symbols/concept/requires-clause.cpp similarity index 100% rename from test-files/golden-tests/metadata/requires-clause.cpp rename to test-files/golden-tests/symbols/concept/requires-clause.cpp diff --git a/test-files/golden-tests/metadata/requires-clause.html b/test-files/golden-tests/symbols/concept/requires-clause.html similarity index 94% rename from test-files/golden-tests/metadata/requires-clause.html rename to test-files/golden-tests/symbols/concept/requires-clause.html index 76736c564..32c38de66 100644 --- a/test-files/golden-tests/metadata/requires-clause.html +++ b/test-files/golden-tests/symbols/concept/requires-clause.html @@ -26,13 +26,15 @@

Functions

- + - - + +
NameNameDescription
f
g
f +
g +
@@ -97,9 +99,11 @@

Synopsis

g

-

Synopsis

+

Synopses

Declared in <requires-clause.cpp>
+ +
 
 template<typename T>
@@ -109,6 +113,8 @@ 

Synopsis

» more... + +
 
 template<typename T>
@@ -118,6 +124,8 @@ 

Synopsis

» more... + +
 
 template<typename U>
diff --git a/test-files/golden-tests/metadata/requires-clause.xml b/test-files/golden-tests/symbols/concept/requires-clause.xml
similarity index 100%
rename from test-files/golden-tests/metadata/requires-clause.xml
rename to test-files/golden-tests/symbols/concept/requires-clause.xml
diff --git a/test-files/golden-tests/metadata/enum.adoc b/test-files/golden-tests/symbols/enum/enum.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/enum.adoc
rename to test-files/golden-tests/symbols/enum/enum.adoc
diff --git a/test-files/golden-tests/metadata/enum.cpp b/test-files/golden-tests/symbols/enum/enum.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/enum.cpp
rename to test-files/golden-tests/symbols/enum/enum.cpp
diff --git a/test-files/golden-tests/metadata/enum.html b/test-files/golden-tests/symbols/enum/enum.html
similarity index 100%
rename from test-files/golden-tests/metadata/enum.html
rename to test-files/golden-tests/symbols/enum/enum.html
diff --git a/test-files/golden-tests/metadata/enum.xml b/test-files/golden-tests/symbols/enum/enum.xml
similarity index 100%
rename from test-files/golden-tests/metadata/enum.xml
rename to test-files/golden-tests/symbols/enum/enum.xml
diff --git a/test-files/golden-tests/metadata/enum.yml b/test-files/golden-tests/symbols/enum/enum.yml
similarity index 100%
rename from test-files/golden-tests/metadata/enum.yml
rename to test-files/golden-tests/symbols/enum/enum.yml
diff --git a/test-files/golden-tests/metadata/friend-1.adoc b/test-files/golden-tests/symbols/friend/friend-1.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/friend-1.adoc
rename to test-files/golden-tests/symbols/friend/friend-1.adoc
diff --git a/test-files/golden-tests/metadata/friend-1.cpp b/test-files/golden-tests/symbols/friend/friend-1.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/friend-1.cpp
rename to test-files/golden-tests/symbols/friend/friend-1.cpp
diff --git a/test-files/golden-tests/metadata/friend-1.html b/test-files/golden-tests/symbols/friend/friend-1.html
similarity index 100%
rename from test-files/golden-tests/metadata/friend-1.html
rename to test-files/golden-tests/symbols/friend/friend-1.html
diff --git a/test-files/golden-tests/metadata/friend-1.xml b/test-files/golden-tests/symbols/friend/friend-1.xml
similarity index 100%
rename from test-files/golden-tests/metadata/friend-1.xml
rename to test-files/golden-tests/symbols/friend/friend-1.xml
diff --git a/test-files/golden-tests/metadata/friend-2.adoc b/test-files/golden-tests/symbols/friend/friend-2.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/friend-2.adoc
rename to test-files/golden-tests/symbols/friend/friend-2.adoc
diff --git a/test-files/golden-tests/metadata/friend-2.cpp b/test-files/golden-tests/symbols/friend/friend-2.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/friend-2.cpp
rename to test-files/golden-tests/symbols/friend/friend-2.cpp
diff --git a/test-files/golden-tests/metadata/friend-2.html b/test-files/golden-tests/symbols/friend/friend-2.html
similarity index 100%
rename from test-files/golden-tests/metadata/friend-2.html
rename to test-files/golden-tests/symbols/friend/friend-2.html
diff --git a/test-files/golden-tests/metadata/friend-2.xml b/test-files/golden-tests/symbols/friend/friend-2.xml
similarity index 100%
rename from test-files/golden-tests/metadata/friend-2.xml
rename to test-files/golden-tests/symbols/friend/friend-2.xml
diff --git a/test-files/golden-tests/metadata/friend-3.adoc b/test-files/golden-tests/symbols/friend/friend-3.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/friend-3.adoc
rename to test-files/golden-tests/symbols/friend/friend-3.adoc
diff --git a/test-files/golden-tests/metadata/friend-3.cpp b/test-files/golden-tests/symbols/friend/friend-3.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/friend-3.cpp
rename to test-files/golden-tests/symbols/friend/friend-3.cpp
diff --git a/test-files/golden-tests/metadata/friend-3.html b/test-files/golden-tests/symbols/friend/friend-3.html
similarity index 100%
rename from test-files/golden-tests/metadata/friend-3.html
rename to test-files/golden-tests/symbols/friend/friend-3.html
diff --git a/test-files/golden-tests/metadata/friend-3.xml b/test-files/golden-tests/symbols/friend/friend-3.xml
similarity index 100%
rename from test-files/golden-tests/metadata/friend-3.xml
rename to test-files/golden-tests/symbols/friend/friend-3.xml
diff --git a/test-files/golden-tests/metadata/friend-4.adoc b/test-files/golden-tests/symbols/friend/friend-4.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/friend-4.adoc
rename to test-files/golden-tests/symbols/friend/friend-4.adoc
diff --git a/test-files/golden-tests/metadata/friend-4.cpp b/test-files/golden-tests/symbols/friend/friend-4.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/friend-4.cpp
rename to test-files/golden-tests/symbols/friend/friend-4.cpp
diff --git a/test-files/golden-tests/metadata/friend-4.html b/test-files/golden-tests/symbols/friend/friend-4.html
similarity index 100%
rename from test-files/golden-tests/metadata/friend-4.html
rename to test-files/golden-tests/symbols/friend/friend-4.html
diff --git a/test-files/golden-tests/metadata/friend-4.xml b/test-files/golden-tests/symbols/friend/friend-4.xml
similarity index 100%
rename from test-files/golden-tests/metadata/friend-4.xml
rename to test-files/golden-tests/symbols/friend/friend-4.xml
diff --git a/test-files/golden-tests/metadata/friend-5.adoc b/test-files/golden-tests/symbols/friend/friend-5.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/friend-5.adoc
rename to test-files/golden-tests/symbols/friend/friend-5.adoc
diff --git a/test-files/golden-tests/metadata/friend-5.cpp b/test-files/golden-tests/symbols/friend/friend-5.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/friend-5.cpp
rename to test-files/golden-tests/symbols/friend/friend-5.cpp
diff --git a/test-files/golden-tests/metadata/friend-5.html b/test-files/golden-tests/symbols/friend/friend-5.html
similarity index 100%
rename from test-files/golden-tests/metadata/friend-5.html
rename to test-files/golden-tests/symbols/friend/friend-5.html
diff --git a/test-files/golden-tests/metadata/friend-5.xml b/test-files/golden-tests/symbols/friend/friend-5.xml
similarity index 100%
rename from test-files/golden-tests/metadata/friend-5.xml
rename to test-files/golden-tests/symbols/friend/friend-5.xml
diff --git a/test-files/golden-tests/metadata/friend-6.adoc b/test-files/golden-tests/symbols/friend/friend-6.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/friend-6.adoc
rename to test-files/golden-tests/symbols/friend/friend-6.adoc
diff --git a/test-files/golden-tests/metadata/friend-6.cpp b/test-files/golden-tests/symbols/friend/friend-6.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/friend-6.cpp
rename to test-files/golden-tests/symbols/friend/friend-6.cpp
diff --git a/test-files/golden-tests/metadata/friend-6.html b/test-files/golden-tests/symbols/friend/friend-6.html
similarity index 100%
rename from test-files/golden-tests/metadata/friend-6.html
rename to test-files/golden-tests/symbols/friend/friend-6.html
diff --git a/test-files/golden-tests/metadata/friend-6.xml b/test-files/golden-tests/symbols/friend/friend-6.xml
similarity index 100%
rename from test-files/golden-tests/metadata/friend-6.xml
rename to test-files/golden-tests/symbols/friend/friend-6.xml
diff --git a/test-files/golden-tests/metadata/attributes-2.adoc b/test-files/golden-tests/symbols/function/attributes-2.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/attributes-2.adoc
rename to test-files/golden-tests/symbols/function/attributes-2.adoc
diff --git a/test-files/golden-tests/metadata/attributes-2.cpp b/test-files/golden-tests/symbols/function/attributes-2.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/attributes-2.cpp
rename to test-files/golden-tests/symbols/function/attributes-2.cpp
diff --git a/test-files/golden-tests/metadata/attributes-2.html b/test-files/golden-tests/symbols/function/attributes-2.html
similarity index 100%
rename from test-files/golden-tests/metadata/attributes-2.html
rename to test-files/golden-tests/symbols/function/attributes-2.html
diff --git a/test-files/golden-tests/metadata/attributes-2.xml b/test-files/golden-tests/symbols/function/attributes-2.xml
similarity index 100%
rename from test-files/golden-tests/metadata/attributes-2.xml
rename to test-files/golden-tests/symbols/function/attributes-2.xml
diff --git a/test-files/golden-tests/metadata/attributes_1.adoc b/test-files/golden-tests/symbols/function/attributes_1.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/attributes_1.adoc
rename to test-files/golden-tests/symbols/function/attributes_1.adoc
diff --git a/test-files/golden-tests/metadata/attributes_1.cpp b/test-files/golden-tests/symbols/function/attributes_1.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/attributes_1.cpp
rename to test-files/golden-tests/symbols/function/attributes_1.cpp
diff --git a/test-files/golden-tests/metadata/attributes_1.html b/test-files/golden-tests/symbols/function/attributes_1.html
similarity index 100%
rename from test-files/golden-tests/metadata/attributes_1.html
rename to test-files/golden-tests/symbols/function/attributes_1.html
diff --git a/test-files/golden-tests/metadata/attributes_1.xml b/test-files/golden-tests/symbols/function/attributes_1.xml
similarity index 100%
rename from test-files/golden-tests/metadata/attributes_1.xml
rename to test-files/golden-tests/symbols/function/attributes_1.xml
diff --git a/test-files/golden-tests/metadata/explicit-conv-operator.adoc b/test-files/golden-tests/symbols/function/explicit-conv-operator.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/explicit-conv-operator.adoc
rename to test-files/golden-tests/symbols/function/explicit-conv-operator.adoc
diff --git a/test-files/golden-tests/metadata/explicit-conv-operator.cpp b/test-files/golden-tests/symbols/function/explicit-conv-operator.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/explicit-conv-operator.cpp
rename to test-files/golden-tests/symbols/function/explicit-conv-operator.cpp
diff --git a/test-files/golden-tests/metadata/explicit-conv-operator.html b/test-files/golden-tests/symbols/function/explicit-conv-operator.html
similarity index 100%
rename from test-files/golden-tests/metadata/explicit-conv-operator.html
rename to test-files/golden-tests/symbols/function/explicit-conv-operator.html
diff --git a/test-files/golden-tests/metadata/explicit-conv-operator.xml b/test-files/golden-tests/symbols/function/explicit-conv-operator.xml
similarity index 100%
rename from test-files/golden-tests/metadata/explicit-conv-operator.xml
rename to test-files/golden-tests/symbols/function/explicit-conv-operator.xml
diff --git a/test-files/golden-tests/metadata/explicit-ctor.adoc b/test-files/golden-tests/symbols/function/explicit-ctor.adoc
similarity index 97%
rename from test-files/golden-tests/metadata/explicit-ctor.adoc
rename to test-files/golden-tests/symbols/function/explicit-ctor.adoc
index 786f66ebf..7d7920356 100644
--- a/test-files/golden-tests/metadata/explicit-ctor.adoc
+++ b/test-files/golden-tests/symbols/function/explicit-ctor.adoc
@@ -33,11 +33,13 @@ struct Explicit;
 
 === Member Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <>         [.small]#[constructor]#
+| 
+
 |===
 
 
@@ -46,11 +48,13 @@ struct Explicit;
 == <>::Explicit
 
 
-=== Synopsis
+=== Synopses
 
 
 Declared in `<explicit‐ctor.cpp>`
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit
@@ -59,6 +63,8 @@ explicit
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit
@@ -67,6 +73,8 @@ explicit
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit
@@ -75,6 +83,8 @@ explicit
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit
@@ -164,11 +174,13 @@ struct ExplicitExpression;
 
 === Member Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <>         [.small]#[constructor]#
+| 
+
 |===
 
 
@@ -177,11 +189,13 @@ struct ExplicitExpression;
 == <>::ExplicitExpression
 
 
-=== Synopsis
+=== Synopses
 
 
 Declared in `<explicit‐ctor.cpp>`
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit(B)
@@ -190,6 +204,8 @@ explicit(B)
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit(B)
@@ -198,6 +214,8 @@ explicit(B)
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit(B)
@@ -206,6 +224,8 @@ explicit(B)
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit(B)
@@ -294,11 +314,13 @@ struct ExplicitFalse;
 
 === Member Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <>         [.small]#[constructor]#
+| 
+
 |===
 
 
@@ -307,11 +329,13 @@ struct ExplicitFalse;
 == <>::ExplicitFalse
 
 
-=== Synopsis
+=== Synopses
 
 
 Declared in `<explicit‐ctor.cpp>`
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit(false)
@@ -320,6 +344,8 @@ explicit(false)
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit(false)
@@ -328,6 +354,8 @@ explicit(false)
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit(false)
@@ -336,6 +364,8 @@ explicit(false)
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit(false)
@@ -424,11 +454,13 @@ struct ExplicitTrue;
 
 === Member Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <>         [.small]#[constructor]#
+| 
+
 |===
 
 
@@ -437,11 +469,13 @@ struct ExplicitTrue;
 == <>::ExplicitTrue
 
 
-=== Synopsis
+=== Synopses
 
 
 Declared in `<explicit‐ctor.cpp>`
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit(true)
@@ -450,6 +484,8 @@ explicit(true)
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit(true)
@@ -458,6 +494,8 @@ explicit(true)
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit(true)
@@ -466,6 +504,8 @@ explicit(true)
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 explicit(true)
diff --git a/test-files/golden-tests/metadata/explicit-ctor.cpp b/test-files/golden-tests/symbols/function/explicit-ctor.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/explicit-ctor.cpp
rename to test-files/golden-tests/symbols/function/explicit-ctor.cpp
diff --git a/test-files/golden-tests/metadata/explicit-ctor.html b/test-files/golden-tests/symbols/function/explicit-ctor.html
similarity index 97%
rename from test-files/golden-tests/metadata/explicit-ctor.html
rename to test-files/golden-tests/symbols/function/explicit-ctor.html
index 790ca5d01..3b2775c00 100644
--- a/test-files/golden-tests/metadata/explicit-ctor.html
+++ b/test-files/golden-tests/symbols/function/explicit-ctor.html
@@ -43,12 +43,13 @@ 

Member Functions

- + - +
NameNameDescription
Explicit [constructor]
Explicit [constructor] +
@@ -59,9 +60,11 @@

Member Functions

Explicit::Explicit

-

Synopsis

+

Synopses

Declared in <explicit-ctor.cpp>
+ +
 
 explicit
@@ -69,6 +72,8 @@ 

Synopsis

» more... + +
 
 explicit
@@ -76,6 +81,8 @@ 

Synopsis

» more... + +
 
 explicit
@@ -83,6 +90,8 @@ 

Synopsis

» more... + +
 
 explicit
@@ -180,12 +189,13 @@ 

Member Functions

- + - +
NameNameDescription
ExplicitExpression [constructor]
ExplicitExpression [constructor] +
@@ -196,9 +206,11 @@

Member Functions

ExplicitExpression::ExplicitExpression

-

Synopsis

+

Synopses

Declared in <explicit-ctor.cpp>
+ +
 
 explicit(B)
@@ -206,6 +218,8 @@ 

Synopsis

» more... + +
 
 explicit(B)
@@ -213,6 +227,8 @@ 

Synopsis

» more... + +
 
 explicit(B)
@@ -220,6 +236,8 @@ 

Synopsis

» more... + +
 
 explicit(B)
@@ -316,12 +334,13 @@ 

Member Functions

- + - +
NameNameDescription
ExplicitFalse [constructor]
ExplicitFalse [constructor] +
@@ -332,9 +351,11 @@

Member Functions

ExplicitFalse::ExplicitFalse

-

Synopsis

+

Synopses

Declared in <explicit-ctor.cpp>
+ +
 
 explicit(false)
@@ -342,6 +363,8 @@ 

Synopsis

» more... + +
 
 explicit(false)
@@ -349,6 +372,8 @@ 

Synopsis

» more... + +
 
 explicit(false)
@@ -356,6 +381,8 @@ 

Synopsis

» more... + +
 
 explicit(false)
@@ -452,12 +479,13 @@ 

Member Functions

- + - +
NameNameDescription
ExplicitTrue [constructor]
ExplicitTrue [constructor] +
@@ -468,9 +496,11 @@

Member Functions

ExplicitTrue::ExplicitTrue

-

Synopsis

+

Synopses

Declared in <explicit-ctor.cpp>
+ +
 
 explicit(true)
@@ -478,6 +508,8 @@ 

Synopsis

» more... + +
 
 explicit(true)
@@ -485,6 +517,8 @@ 

Synopsis

» more... + +
 
 explicit(true)
@@ -492,6 +526,8 @@ 

Synopsis

» more... + +
 
 explicit(true)
diff --git a/test-files/golden-tests/metadata/explicit-ctor.xml b/test-files/golden-tests/symbols/function/explicit-ctor.xml
similarity index 100%
rename from test-files/golden-tests/metadata/explicit-ctor.xml
rename to test-files/golden-tests/symbols/function/explicit-ctor.xml
diff --git a/test-files/golden-tests/metadata/explicit-object-parameter.adoc b/test-files/golden-tests/symbols/function/explicit-object-parameter.adoc
similarity index 96%
rename from test-files/golden-tests/metadata/explicit-object-parameter.adoc
rename to test-files/golden-tests/symbols/function/explicit-object-parameter.adoc
index cb9eb33ec..fb8b687bd 100644
--- a/test-files/golden-tests/metadata/explicit-object-parameter.adoc
+++ b/test-files/golden-tests/symbols/function/explicit-object-parameter.adoc
@@ -30,11 +30,13 @@ struct Optional;
 
 === Member Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <> 
+| 
+
 |===
 
 
@@ -43,11 +45,13 @@ struct Optional;
 == <>::value
 
 
-=== Synopsis
+=== Synopses
 
 
 Declared in `<explicit‐object‐parameter.cpp>`
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<typename Self>
@@ -58,6 +62,8 @@ auto&&
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<typename Self>
diff --git a/test-files/golden-tests/metadata/explicit-object-parameter.cpp b/test-files/golden-tests/symbols/function/explicit-object-parameter.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/explicit-object-parameter.cpp
rename to test-files/golden-tests/symbols/function/explicit-object-parameter.cpp
diff --git a/test-files/golden-tests/metadata/explicit-object-parameter.html b/test-files/golden-tests/symbols/function/explicit-object-parameter.html
similarity index 94%
rename from test-files/golden-tests/metadata/explicit-object-parameter.html
rename to test-files/golden-tests/symbols/function/explicit-object-parameter.html
index d7ea4e3eb..e87c1a8a6 100644
--- a/test-files/golden-tests/metadata/explicit-object-parameter.html
+++ b/test-files/golden-tests/symbols/function/explicit-object-parameter.html
@@ -40,12 +40,13 @@ 

Member Functions

- + - +
NameNameDescription
value
value +
@@ -56,9 +57,11 @@

Member Functions

Optional::value

-

Synopsis

+

Synopses

Declared in <explicit-object-parameter.cpp>
+ +
 
 template<typename Self>
@@ -68,6 +71,8 @@ 

Synopsis

» more... + +
 
 template<typename Self>
diff --git a/test-files/golden-tests/metadata/explicit-object-parameter.xml b/test-files/golden-tests/symbols/function/explicit-object-parameter.xml
similarity index 100%
rename from test-files/golden-tests/metadata/explicit-object-parameter.xml
rename to test-files/golden-tests/symbols/function/explicit-object-parameter.xml
diff --git a/test-files/golden-tests/metadata/function-parm-decay.adoc b/test-files/golden-tests/symbols/function/function-parm-decay.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/function-parm-decay.adoc
rename to test-files/golden-tests/symbols/function/function-parm-decay.adoc
diff --git a/test-files/golden-tests/metadata/function-parm-decay.cpp b/test-files/golden-tests/symbols/function/function-parm-decay.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/function-parm-decay.cpp
rename to test-files/golden-tests/symbols/function/function-parm-decay.cpp
diff --git a/test-files/golden-tests/metadata/function-parm-decay.html b/test-files/golden-tests/symbols/function/function-parm-decay.html
similarity index 100%
rename from test-files/golden-tests/metadata/function-parm-decay.html
rename to test-files/golden-tests/symbols/function/function-parm-decay.html
diff --git a/test-files/golden-tests/metadata/function-parm-decay.xml b/test-files/golden-tests/symbols/function/function-parm-decay.xml
similarity index 100%
rename from test-files/golden-tests/metadata/function-parm-decay.xml
rename to test-files/golden-tests/symbols/function/function-parm-decay.xml
diff --git a/test-files/golden-tests/metadata/function-template-template.adoc b/test-files/golden-tests/symbols/function/function-template-template.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/function-template-template.adoc
rename to test-files/golden-tests/symbols/function/function-template-template.adoc
diff --git a/test-files/golden-tests/metadata/function-template-template.cpp b/test-files/golden-tests/symbols/function/function-template-template.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/function-template-template.cpp
rename to test-files/golden-tests/symbols/function/function-template-template.cpp
diff --git a/test-files/golden-tests/metadata/function-template-template.html b/test-files/golden-tests/symbols/function/function-template-template.html
similarity index 100%
rename from test-files/golden-tests/metadata/function-template-template.html
rename to test-files/golden-tests/symbols/function/function-template-template.html
diff --git a/test-files/golden-tests/metadata/function-template-template.xml b/test-files/golden-tests/symbols/function/function-template-template.xml
similarity index 100%
rename from test-files/golden-tests/metadata/function-template-template.xml
rename to test-files/golden-tests/symbols/function/function-template-template.xml
diff --git a/test-files/golden-tests/metadata/function-template.adoc b/test-files/golden-tests/symbols/function/function-template.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/function-template.adoc
rename to test-files/golden-tests/symbols/function/function-template.adoc
diff --git a/test-files/golden-tests/metadata/function-template.cpp b/test-files/golden-tests/symbols/function/function-template.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/function-template.cpp
rename to test-files/golden-tests/symbols/function/function-template.cpp
diff --git a/test-files/golden-tests/metadata/function-template.html b/test-files/golden-tests/symbols/function/function-template.html
similarity index 100%
rename from test-files/golden-tests/metadata/function-template.html
rename to test-files/golden-tests/symbols/function/function-template.html
diff --git a/test-files/golden-tests/metadata/function-template.xml b/test-files/golden-tests/symbols/function/function-template.xml
similarity index 100%
rename from test-files/golden-tests/metadata/function-template.xml
rename to test-files/golden-tests/symbols/function/function-template.xml
diff --git a/test-files/golden-tests/metadata/function-tparm-decay.adoc b/test-files/golden-tests/symbols/function/function-tparm-decay.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/function-tparm-decay.adoc
rename to test-files/golden-tests/symbols/function/function-tparm-decay.adoc
diff --git a/test-files/golden-tests/metadata/function-tparm-decay.cpp b/test-files/golden-tests/symbols/function/function-tparm-decay.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/function-tparm-decay.cpp
rename to test-files/golden-tests/symbols/function/function-tparm-decay.cpp
diff --git a/test-files/golden-tests/metadata/function-tparm-decay.html b/test-files/golden-tests/symbols/function/function-tparm-decay.html
similarity index 100%
rename from test-files/golden-tests/metadata/function-tparm-decay.html
rename to test-files/golden-tests/symbols/function/function-tparm-decay.html
diff --git a/test-files/golden-tests/metadata/function-tparm-decay.xml b/test-files/golden-tests/symbols/function/function-tparm-decay.xml
similarity index 100%
rename from test-files/golden-tests/metadata/function-tparm-decay.xml
rename to test-files/golden-tests/symbols/function/function-tparm-decay.xml
diff --git a/test-files/golden-tests/metadata/mem-fn.adoc b/test-files/golden-tests/symbols/function/mem-fn.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/mem-fn.adoc
rename to test-files/golden-tests/symbols/function/mem-fn.adoc
diff --git a/test-files/golden-tests/metadata/mem-fn.cpp b/test-files/golden-tests/symbols/function/mem-fn.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/mem-fn.cpp
rename to test-files/golden-tests/symbols/function/mem-fn.cpp
diff --git a/test-files/golden-tests/metadata/mem-fn.html b/test-files/golden-tests/symbols/function/mem-fn.html
similarity index 100%
rename from test-files/golden-tests/metadata/mem-fn.html
rename to test-files/golden-tests/symbols/function/mem-fn.html
diff --git a/test-files/golden-tests/metadata/mem-fn.xml b/test-files/golden-tests/symbols/function/mem-fn.xml
similarity index 100%
rename from test-files/golden-tests/metadata/mem-fn.xml
rename to test-files/golden-tests/symbols/function/mem-fn.xml
diff --git a/test-files/golden-tests/metadata/noreturn.adoc b/test-files/golden-tests/symbols/function/noreturn.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/noreturn.adoc
rename to test-files/golden-tests/symbols/function/noreturn.adoc
diff --git a/test-files/golden-tests/metadata/noreturn.cpp b/test-files/golden-tests/symbols/function/noreturn.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/noreturn.cpp
rename to test-files/golden-tests/symbols/function/noreturn.cpp
diff --git a/test-files/golden-tests/metadata/noreturn.html b/test-files/golden-tests/symbols/function/noreturn.html
similarity index 100%
rename from test-files/golden-tests/metadata/noreturn.html
rename to test-files/golden-tests/symbols/function/noreturn.html
diff --git a/test-files/golden-tests/metadata/noreturn.xml b/test-files/golden-tests/symbols/function/noreturn.xml
similarity index 100%
rename from test-files/golden-tests/metadata/noreturn.xml
rename to test-files/golden-tests/symbols/function/noreturn.xml
diff --git a/test-files/golden-tests/metadata/overloaded-op-1.adoc b/test-files/golden-tests/symbols/function/overloaded-op-1.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/overloaded-op-1.adoc
rename to test-files/golden-tests/symbols/function/overloaded-op-1.adoc
diff --git a/test-files/golden-tests/metadata/overloaded-op-1.cpp b/test-files/golden-tests/symbols/function/overloaded-op-1.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/overloaded-op-1.cpp
rename to test-files/golden-tests/symbols/function/overloaded-op-1.cpp
diff --git a/test-files/golden-tests/metadata/overloaded-op-1.html b/test-files/golden-tests/symbols/function/overloaded-op-1.html
similarity index 100%
rename from test-files/golden-tests/metadata/overloaded-op-1.html
rename to test-files/golden-tests/symbols/function/overloaded-op-1.html
diff --git a/test-files/golden-tests/metadata/overloaded-op-1.xml b/test-files/golden-tests/symbols/function/overloaded-op-1.xml
similarity index 100%
rename from test-files/golden-tests/metadata/overloaded-op-1.xml
rename to test-files/golden-tests/symbols/function/overloaded-op-1.xml
diff --git a/test-files/golden-tests/metadata/overloaded-op-2.adoc b/test-files/golden-tests/symbols/function/overloaded-op-2.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/overloaded-op-2.adoc
rename to test-files/golden-tests/symbols/function/overloaded-op-2.adoc
diff --git a/test-files/golden-tests/metadata/overloaded-op-2.cpp b/test-files/golden-tests/symbols/function/overloaded-op-2.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/overloaded-op-2.cpp
rename to test-files/golden-tests/symbols/function/overloaded-op-2.cpp
diff --git a/test-files/golden-tests/metadata/overloaded-op-2.html b/test-files/golden-tests/symbols/function/overloaded-op-2.html
similarity index 100%
rename from test-files/golden-tests/metadata/overloaded-op-2.html
rename to test-files/golden-tests/symbols/function/overloaded-op-2.html
diff --git a/test-files/golden-tests/metadata/overloaded-op-2.xml b/test-files/golden-tests/symbols/function/overloaded-op-2.xml
similarity index 100%
rename from test-files/golden-tests/metadata/overloaded-op-2.xml
rename to test-files/golden-tests/symbols/function/overloaded-op-2.xml
diff --git a/test-files/golden-tests/metadata/sfinae.adoc b/test-files/golden-tests/symbols/function/sfinae.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/sfinae.adoc
rename to test-files/golden-tests/symbols/function/sfinae.adoc
diff --git a/test-files/golden-tests/metadata/sfinae.cpp b/test-files/golden-tests/symbols/function/sfinae.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/sfinae.cpp
rename to test-files/golden-tests/symbols/function/sfinae.cpp
diff --git a/test-files/golden-tests/metadata/sfinae.html b/test-files/golden-tests/symbols/function/sfinae.html
similarity index 100%
rename from test-files/golden-tests/metadata/sfinae.html
rename to test-files/golden-tests/symbols/function/sfinae.html
diff --git a/test-files/golden-tests/metadata/sfinae.xml b/test-files/golden-tests/symbols/function/sfinae.xml
similarity index 100%
rename from test-files/golden-tests/metadata/sfinae.xml
rename to test-files/golden-tests/symbols/function/sfinae.xml
diff --git a/test-files/golden-tests/metadata/sfinae.yml b/test-files/golden-tests/symbols/function/sfinae.yml
similarity index 100%
rename from test-files/golden-tests/metadata/sfinae.yml
rename to test-files/golden-tests/symbols/function/sfinae.yml
diff --git a/test-files/golden-tests/metadata/spec-mem-implicit-instantiation.adoc b/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/spec-mem-implicit-instantiation.adoc
rename to test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.adoc
diff --git a/test-files/golden-tests/metadata/spec-mem-implicit-instantiation.cpp b/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/spec-mem-implicit-instantiation.cpp
rename to test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.cpp
diff --git a/test-files/golden-tests/metadata/spec-mem-implicit-instantiation.html b/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.html
similarity index 100%
rename from test-files/golden-tests/metadata/spec-mem-implicit-instantiation.html
rename to test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.html
diff --git a/test-files/golden-tests/metadata/spec-mem-implicit-instantiation.xml b/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.xml
similarity index 100%
rename from test-files/golden-tests/metadata/spec-mem-implicit-instantiation.xml
rename to test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.xml
diff --git a/test-files/golden-tests/metadata/type-resolution.adoc b/test-files/golden-tests/symbols/function/type-resolution.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/type-resolution.adoc
rename to test-files/golden-tests/symbols/function/type-resolution.adoc
diff --git a/test-files/golden-tests/metadata/type-resolution.cpp b/test-files/golden-tests/symbols/function/type-resolution.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/type-resolution.cpp
rename to test-files/golden-tests/symbols/function/type-resolution.cpp
diff --git a/test-files/golden-tests/metadata/type-resolution.html b/test-files/golden-tests/symbols/function/type-resolution.html
similarity index 100%
rename from test-files/golden-tests/metadata/type-resolution.html
rename to test-files/golden-tests/symbols/function/type-resolution.html
diff --git a/test-files/golden-tests/metadata/type-resolution.xml b/test-files/golden-tests/symbols/function/type-resolution.xml
similarity index 100%
rename from test-files/golden-tests/metadata/type-resolution.xml
rename to test-files/golden-tests/symbols/function/type-resolution.xml
diff --git a/test-files/golden-tests/metadata/variadic-function.adoc b/test-files/golden-tests/symbols/function/variadic-function.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/variadic-function.adoc
rename to test-files/golden-tests/symbols/function/variadic-function.adoc
diff --git a/test-files/golden-tests/metadata/variadic-function.cpp b/test-files/golden-tests/symbols/function/variadic-function.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/variadic-function.cpp
rename to test-files/golden-tests/symbols/function/variadic-function.cpp
diff --git a/test-files/golden-tests/metadata/variadic-function.html b/test-files/golden-tests/symbols/function/variadic-function.html
similarity index 100%
rename from test-files/golden-tests/metadata/variadic-function.html
rename to test-files/golden-tests/symbols/function/variadic-function.html
diff --git a/test-files/golden-tests/metadata/variadic-function.xml b/test-files/golden-tests/symbols/function/variadic-function.xml
similarity index 100%
rename from test-files/golden-tests/metadata/variadic-function.xml
rename to test-files/golden-tests/symbols/function/variadic-function.xml
diff --git a/test-files/golden-tests/metadata/explicit-deduct-guide.adoc b/test-files/golden-tests/symbols/guide/explicit-deduct-guide.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/explicit-deduct-guide.adoc
rename to test-files/golden-tests/symbols/guide/explicit-deduct-guide.adoc
diff --git a/test-files/golden-tests/metadata/explicit-deduct-guide.cpp b/test-files/golden-tests/symbols/guide/explicit-deduct-guide.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/explicit-deduct-guide.cpp
rename to test-files/golden-tests/symbols/guide/explicit-deduct-guide.cpp
diff --git a/test-files/golden-tests/metadata/explicit-deduct-guide.html b/test-files/golden-tests/symbols/guide/explicit-deduct-guide.html
similarity index 100%
rename from test-files/golden-tests/metadata/explicit-deduct-guide.html
rename to test-files/golden-tests/symbols/guide/explicit-deduct-guide.html
diff --git a/test-files/golden-tests/metadata/explicit-deduct-guide.xml b/test-files/golden-tests/symbols/guide/explicit-deduct-guide.xml
similarity index 100%
rename from test-files/golden-tests/metadata/explicit-deduct-guide.xml
rename to test-files/golden-tests/symbols/guide/explicit-deduct-guide.xml
diff --git a/test-files/golden-tests/metadata/namespace-alias-1.adoc b/test-files/golden-tests/symbols/namespace-alias/namespace-alias-1.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/namespace-alias-1.adoc
rename to test-files/golden-tests/symbols/namespace-alias/namespace-alias-1.adoc
diff --git a/test-files/golden-tests/metadata/namespace-alias-1.cpp b/test-files/golden-tests/symbols/namespace-alias/namespace-alias-1.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/namespace-alias-1.cpp
rename to test-files/golden-tests/symbols/namespace-alias/namespace-alias-1.cpp
diff --git a/test-files/golden-tests/metadata/namespace-alias-1.html b/test-files/golden-tests/symbols/namespace-alias/namespace-alias-1.html
similarity index 100%
rename from test-files/golden-tests/metadata/namespace-alias-1.html
rename to test-files/golden-tests/symbols/namespace-alias/namespace-alias-1.html
diff --git a/test-files/golden-tests/metadata/namespace-alias-1.xml b/test-files/golden-tests/symbols/namespace-alias/namespace-alias-1.xml
similarity index 100%
rename from test-files/golden-tests/metadata/namespace-alias-1.xml
rename to test-files/golden-tests/symbols/namespace-alias/namespace-alias-1.xml
diff --git a/test-files/golden-tests/metadata/namespace-alias-2.adoc b/test-files/golden-tests/symbols/namespace-alias/namespace-alias-2.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/namespace-alias-2.adoc
rename to test-files/golden-tests/symbols/namespace-alias/namespace-alias-2.adoc
diff --git a/test-files/golden-tests/metadata/namespace-alias-2.cpp b/test-files/golden-tests/symbols/namespace-alias/namespace-alias-2.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/namespace-alias-2.cpp
rename to test-files/golden-tests/symbols/namespace-alias/namespace-alias-2.cpp
diff --git a/test-files/golden-tests/metadata/namespace-alias-2.html b/test-files/golden-tests/symbols/namespace-alias/namespace-alias-2.html
similarity index 100%
rename from test-files/golden-tests/metadata/namespace-alias-2.html
rename to test-files/golden-tests/symbols/namespace-alias/namespace-alias-2.html
diff --git a/test-files/golden-tests/metadata/namespace-alias-2.xml b/test-files/golden-tests/symbols/namespace-alias/namespace-alias-2.xml
similarity index 100%
rename from test-files/golden-tests/metadata/namespace-alias-2.xml
rename to test-files/golden-tests/symbols/namespace-alias/namespace-alias-2.xml
diff --git a/test-files/golden-tests/metadata/namespace-alias-3.adoc b/test-files/golden-tests/symbols/namespace-alias/namespace-alias-3.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/namespace-alias-3.adoc
rename to test-files/golden-tests/symbols/namespace-alias/namespace-alias-3.adoc
diff --git a/test-files/golden-tests/metadata/namespace-alias-3.cpp b/test-files/golden-tests/symbols/namespace-alias/namespace-alias-3.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/namespace-alias-3.cpp
rename to test-files/golden-tests/symbols/namespace-alias/namespace-alias-3.cpp
diff --git a/test-files/golden-tests/metadata/namespace-alias-3.html b/test-files/golden-tests/symbols/namespace-alias/namespace-alias-3.html
similarity index 100%
rename from test-files/golden-tests/metadata/namespace-alias-3.html
rename to test-files/golden-tests/symbols/namespace-alias/namespace-alias-3.html
diff --git a/test-files/golden-tests/metadata/namespace-alias-3.xml b/test-files/golden-tests/symbols/namespace-alias/namespace-alias-3.xml
similarity index 100%
rename from test-files/golden-tests/metadata/namespace-alias-3.xml
rename to test-files/golden-tests/symbols/namespace-alias/namespace-alias-3.xml
diff --git a/test-files/golden-tests/metadata/namespace.adoc b/test-files/golden-tests/symbols/namespace/namespace.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/namespace.adoc
rename to test-files/golden-tests/symbols/namespace/namespace.adoc
diff --git a/test-files/golden-tests/metadata/namespace.cpp b/test-files/golden-tests/symbols/namespace/namespace.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/namespace.cpp
rename to test-files/golden-tests/symbols/namespace/namespace.cpp
diff --git a/test-files/golden-tests/metadata/namespace.html b/test-files/golden-tests/symbols/namespace/namespace.html
similarity index 100%
rename from test-files/golden-tests/metadata/namespace.html
rename to test-files/golden-tests/symbols/namespace/namespace.html
diff --git a/test-files/golden-tests/metadata/namespace.xml b/test-files/golden-tests/symbols/namespace/namespace.xml
similarity index 100%
rename from test-files/golden-tests/metadata/namespace.xml
rename to test-files/golden-tests/symbols/namespace/namespace.xml
diff --git a/test-files/golden-tests/symbols/overloads/overloads-brief.adoc b/test-files/golden-tests/symbols/overloads/overloads-brief.adoc
new file mode 100644
index 000000000..f66ff5e2f
--- /dev/null
+++ b/test-files/golden-tests/symbols/overloads/overloads-brief.adoc
@@ -0,0 +1,789 @@
+= Reference
+:mrdocs:
+
+[#index]
+== Global namespace
+
+
+=== Types
+
+[cols=2]
+|===
+| Name | Description 
+
+| <> 
+| Overload briefs from function or operator classes
+
+| <> 
+| Auxiliary class
+
+|===
+=== Functions
+
+[cols=2]
+|===
+| Name | Description 
+
+| <> 
+| `no_way_to_infer_this_brief` overloads
+
+| <> 
+| Unary plus operators
+
+| <> 
+| Function with same brief
+
+|===
+
+[#A]
+== A
+
+
+Overload briefs from function or operator classes
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+struct A;
+----
+
+=== Member Functions
+
+[cols=2]
+|===
+| Name | Description 
+
+| <>         [.small]#[constructor]#
+| Constructors
+
+| <> 
+| Assignment operators
+
+| <> 
+| Addition operators
+
+| <> 
+| `operator‐` overloads
+
+|===
+
+
+
+[#A-2constructor-08]
+== <>::A
+
+
+Constructors
+
+=== Synopses
+
+
+Declared in `<overloads‐brief.cpp>`
+
+First constructor
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>();
+----
+
+[.small]#<>#
+
+Second constructor
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>(int a);
+----
+
+[.small]#<>#
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Describe a
+
+|===
+
+[#A-2constructor-03]
+== <>::A
+
+
+First constructor
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+A();
+----
+
+[#A-2constructor-01]
+== <>::A
+
+
+Second constructor
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+A(int a);
+----
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Describe a
+
+|===
+
+[#A-operator_assign-0d]
+== <>::operator=
+
+
+Assignment operators
+
+=== Synopses
+
+
+Declared in `<overloads‐brief.cpp>`
+
+Assign from int
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>&
+<>(int a);
+----
+
+[.small]#<>#
+
+Assign from A
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>&
+<>(<> const& a);
+----
+
+[.small]#<>#
+
+=== Return Value
+
+
+`*this`
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Describe b
+
+|===
+
+[#A-operator_assign-06]
+== <>::operator=
+
+
+Assign from int
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>&
+operator=(int a);
+----
+
+=== Return Value
+
+
+`*this`
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Describe b
+
+|===
+
+[#A-operator_assign-04]
+== <>::operator=
+
+
+Assign from A
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>&
+operator=(<> const& a);
+----
+
+=== Return Value
+
+
+`*this`
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Describe a
+
+|===
+
+[#A-operator_plus-07]
+== <>::operator+
+
+
+Addition operators
+
+=== Synopses
+
+
+Declared in `<overloads‐brief.cpp>`
+
+Addition operator for ints
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>
+<>(int a);
+----
+
+[.small]#<>#
+
+Addition operator for As
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>
+<>(<> const& a);
+----
+
+[.small]#<>#
+
+=== Return Value
+
+
+`*this`
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Describe a
+
+|===
+
+[#A-operator_plus-0c]
+== <>::operator+
+
+
+Addition operator for ints
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>
+operator+(int a);
+----
+
+=== Return Value
+
+
+`*this`
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Describe a
+
+|===
+
+[#A-operator_plus-0e]
+== <>::operator+
+
+
+Addition operator for As
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>
+operator+(<> const& a);
+----
+
+=== Return Value
+
+
+`*this`
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Describe a
+
+|===
+
+[#A-operator_minus-0a]
+== <>::operator‐
+
+
+`operator‐` overloads
+
+=== Synopses
+
+
+Declared in `<overloads‐brief.cpp>`
+
+Unary operator‐ for A
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>
+<>();
+----
+
+[.small]#<>#
+
+Binary operator‐ for A
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>
+<>(<> const&);
+----
+
+[.small]#<>#
+
+=== Return Value
+
+
+Result
+
+[#A-operator_minus-02]
+== <>::operator‐
+
+
+Unary operator‐ for A
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>
+operator‐();
+----
+
+=== Description
+
+
+No way to generate a brief from the        operator kind because there are        unary and binary operators.
+
+
+
+=== Return Value
+
+
+Result
+
+[#A-operator_minus-0c]
+== <>::operator‐
+
+
+Binary operator‐ for A
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+<>
+operator‐(<> const&);
+----
+
+=== Description
+
+
+No way to generate a brief from the        operator kind.
+
+
+
+=== Return Value
+
+
+Result
+
+[#B]
+== B
+
+
+Auxiliary class
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+struct B;
+----
+
+
+
+
+[#no_way_to_infer_this_brief-0e]
+== no_way_to_infer_this_brief
+
+
+`no_way_to_infer_this_brief` overloads
+
+=== Synopses
+
+
+Declared in `<overloads‐brief.cpp>`
+
+Function with no params
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+void
+<>();
+----
+
+[.small]#<>#
+
+Function with single param
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+void
+<>(int a);
+----
+
+[.small]#<>#
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Describe a
+
+|===
+
+[#no_way_to_infer_this_brief-02]
+== no_way_to_infer_this_brief
+
+
+Function with no params
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+void
+no_way_to_infer_this_brief();
+----
+
+[#no_way_to_infer_this_brief-01]
+== no_way_to_infer_this_brief
+
+
+Function with single param
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+void
+no_way_to_infer_this_brief(int a);
+----
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Describe a
+
+|===
+
+[#operator_plus-0dd]
+== operator+
+
+
+Unary plus operators
+
+=== Synopses
+
+
+Declared in `<overloads‐brief.cpp>`
+
+Unary operator for A
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+int
+<>(<> const&);
+----
+
+[.small]#<>#
+
+Unary operator for B
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+int
+<>(<> const&);
+----
+
+[.small]#<>#
+
+=== Return Value
+
+
+Result
+
+[#operator_plus-0d7]
+== operator+
+
+
+Unary operator for A
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+int
+operator+(<> const&);
+----
+
+=== Return Value
+
+
+Result
+
+[#operator_plus-06]
+== operator+
+
+
+Unary operator for B
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+int
+operator+(<> const&);
+----
+
+=== Return Value
+
+
+Result
+
+[#sameBrief-08]
+== sameBrief
+
+
+Function with same brief
+
+=== Synopses
+
+
+Declared in `<overloads‐brief.cpp>`
+
+Function with same brief
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+void
+<>(int a);
+----
+
+[.small]#<>#
+
+Function with same brief
+
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+void
+<>(
+    int a,
+    int b);
+----
+
+[.small]#<>#
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Describe a
+
+| *b*
+| Describe b
+
+|===
+
+[#sameBrief-0a]
+== sameBrief
+
+
+Function with same brief
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+void
+sameBrief(int a);
+----
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Describe a
+
+|===
+
+[#sameBrief-0e]
+== sameBrief
+
+
+Function with same brief
+
+=== Synopsis
+
+
+Declared in `<overloads‐brief.cpp>`
+
+[source,cpp,subs="verbatim,replacements,macros,-callouts"]
+----
+void
+sameBrief(
+    int a,
+    int b);
+----
+
+=== Parameters
+
+
+|===
+| Name | Description
+
+| *a*
+| Describe a again
+
+| *b*
+| Describe b
+
+|===
+
+
+
+[.small]#Created with https://www.mrdocs.com[MrDocs]#
diff --git a/test-files/golden-tests/symbols/overloads/overloads-brief.cpp b/test-files/golden-tests/symbols/overloads/overloads-brief.cpp
new file mode 100644
index 000000000..9984ec877
--- /dev/null
+++ b/test-files/golden-tests/symbols/overloads/overloads-brief.cpp
@@ -0,0 +1,99 @@
+/** Function with same brief
+
+    @param a Describe a
+ */
+void sameBrief(int a);
+
+/** Function with same brief
+
+    @param a Describe a again
+    @param b Describe b
+ */
+void sameBrief(int a, int b);
+
+/// Overload briefs from function or operator classes
+struct A {
+    /** First constructor
+     */
+    A();
+
+    /** Second constructor
+
+        @param a Describe a
+     */
+    A(int a);
+
+    /** Assign from A
+
+        @param a Describe a
+        @return `*this`
+     */
+    A&
+    operator=(A const& a);
+
+    /** Assign from int
+
+        @param a Describe b
+        @return `*this`
+     */
+    A&
+    operator=(int a);
+
+    /** Addition operator for As
+
+        @param a Describe a
+        @return `*this`
+     */
+    A operator+(A const& a);
+
+    /** Addition operator for ints
+
+        @param a Describe a
+        @return `*this`
+     */
+    A operator+(int a);
+
+    /** Unary operator- for A
+
+        No way to generate a brief from the
+        operator kind because there are
+        unary and binary operators.
+
+        @return Result
+     */
+    A operator-();
+
+    /** Binary operator- for A
+
+        No way to generate a brief from the
+        operator kind.
+
+        @return Result
+     */
+    A operator-(A const&);
+};
+
+/// Auxiliary class
+struct B{};
+
+/** Unary operator for A
+
+    @return Result
+*/
+int operator+(A const&);
+
+/** Unary operator for B
+
+    @return Result
+*/
+int operator+(B const&);
+
+/** Function with no params
+ */
+void no_way_to_infer_this_brief();
+
+/** Function with single param
+
+    @param a Describe a
+ */
+void no_way_to_infer_this_brief(int a);
\ No newline at end of file
diff --git a/test-files/golden-tests/symbols/overloads/overloads-brief.html b/test-files/golden-tests/symbols/overloads/overloads-brief.html
new file mode 100644
index 000000000..45a6416cb
--- /dev/null
+++ b/test-files/golden-tests/symbols/overloads/overloads-brief.html
@@ -0,0 +1,1027 @@
+
+
+Reference
+
+
+
+

Reference

+
+
+

Global namespace

+
+

Types

+ + + + + + + + + + + +
NameDescription
A Overload briefs from function or operator classes + +
B Auxiliary class + +
+

Functions

+ + + + + + + + + + + + +
NameDescription
no_way_to_infer_this_brief no_way_to_infer_this_brief overloads + +
operator+ Unary plus operators + +
sameBrief Function with same brief + +
+
+
+
+

A

+
+Overload briefs from function or operator classes + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+struct A;
+
+
+
+

Member Functions

+ + + + + + + + + + + + + +
NameDescription
A [constructor]Constructors + +
operator= Assignment operators + +
operator+ Addition operators + +
operator- operator- overloads + +
+ + +
+
+
+

A::A

+
+Constructors + + +
+
+
+

Synopses

+
+Declared in <overloads-brief.cpp>
+

+ First constructor + +

+ + +
+
+A();
+
+
» more... + +

+ Second constructor + +

+ + +
+
+A(int a);
+
+
» more... + + +
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
a

Describe a

+
+
+
+
+
+

A::A

+
+First constructor + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+A();
+
+
+
+
+
+
+

A::A

+
+Second constructor + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+A(int a);
+
+
+
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
a

Describe a

+
+
+
+
+
+

A::operator=

+
+Assignment operators + + +
+
+
+

Synopses

+
+Declared in <overloads-brief.cpp>
+

+ Assign from int + +

+ + +
+
+A&
+operator=(int a);
+
+
» more... + +

+ Assign from A + +

+ + +
+
+A&
+operator=(A const& a);
+
+
» more... + + +
+
+

Return Value

+

*this

+ +
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
a

Describe b

+
+
+
+
+
+

A::operator=

+
+Assign from int + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+A&
+operator=(int a);
+
+
+
+
+

Return Value

+

*this

+ +
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
a

Describe b

+
+
+
+
+
+

A::operator=

+
+Assign from A + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+A&
+operator=(A const& a);
+
+
+
+
+

Return Value

+

*this

+ +
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
a

Describe a

+
+
+
+
+
+

A::operator+

+
+Addition operators + + +
+
+
+

Synopses

+
+Declared in <overloads-brief.cpp>
+

+ Addition operator for ints + +

+ + +
+
+A
+operator+(int a);
+
+
» more... + +

+ Addition operator for As + +

+ + +
+
+A
+operator+(A const& a);
+
+
» more... + + +
+
+

Return Value

+

*this

+ +
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
a

Describe a

+
+
+
+
+
+

A::operator+

+
+Addition operator for ints + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+A
+operator+(int a);
+
+
+
+
+

Return Value

+

*this

+ +
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
a

Describe a

+
+
+
+
+
+

A::operator+

+
+Addition operator for As + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+A
+operator+(A const& a);
+
+
+
+
+

Return Value

+

*this

+ +
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
a

Describe a

+
+
+
+
+
+

A::operator-

+
+operator- overloads + + +
+
+
+

Synopses

+
+Declared in <overloads-brief.cpp>
+

+ Unary operator- for A + +

+ + +
+
+A
+operator-();
+
+
» more... + +

+ Binary operator- for A + +

+ + +
+
+A
+operator-(A const&);
+
+
» more... + + +
+
+

Return Value

+

Result

+ +
+
+
+
+

A::operator-

+
+Unary operator- for A + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+A
+operator-();
+
+
+
+
+

Description

+

No way to generate a brief from the operator kind because there are unary and binary operators.

+ + +
+
+

Return Value

+

Result

+ +
+
+
+
+

A::operator-

+
+Binary operator- for A + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+A
+operator-(A const&);
+
+
+
+
+

Description

+

No way to generate a brief from the operator kind.

+ + +
+
+

Return Value

+

Result

+ +
+
+
+
+

B

+
+Auxiliary class + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+struct B;
+
+
+
+ + +
+
+
+

no_way_to_infer_this_brief

+
+no_way_to_infer_this_brief overloads + + +
+
+
+

Synopses

+
+Declared in <overloads-brief.cpp>
+

+ Function with no params + +

+ + +
+
+void
+no_way_to_infer_this_brief();
+
+
» more... + +

+ Function with single param + +

+ + +
+
+void
+no_way_to_infer_this_brief(int a);
+
+
» more... + + +
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
a

Describe a

+
+
+
+
+
+

no_way_to_infer_this_brief

+
+Function with no params + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+void
+no_way_to_infer_this_brief();
+
+
+
+
+
+
+

no_way_to_infer_this_brief

+
+Function with single param + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+void
+no_way_to_infer_this_brief(int a);
+
+
+
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
a

Describe a

+
+
+
+
+
+

operator+

+
+Unary plus operators + + +
+
+
+

Synopses

+
+Declared in <overloads-brief.cpp>
+

+ Unary operator for A + +

+ + +
+
+int
+operator+(A const&);
+
+
» more... + +

+ Unary operator for B + +

+ + +
+
+int
+operator+(B const&);
+
+
» more... + + +
+
+

Return Value

+

Result

+ +
+
+
+
+

operator+

+
+Unary operator for A + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+int
+operator+(A const&);
+
+
+
+
+

Return Value

+

Result

+ +
+
+
+
+

operator+

+
+Unary operator for B + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+int
+operator+(B const&);
+
+
+
+
+

Return Value

+

Result

+ +
+
+
+
+

sameBrief

+
+Function with same brief + + +
+
+
+

Synopses

+
+Declared in <overloads-brief.cpp>
+

+ Function with same brief + +

+ + +
+
+void
+sameBrief(int a);
+
+
» more... + +

+ Function with same brief + +

+ + +
+
+void
+sameBrief(
+    int a,
+    int b);
+
+
» more... + + +
+
+

Parameters

+ + + + + + + + + + + + + + + + + +
NameDescription
a

Describe a

+
b

Describe b

+
+
+
+
+
+

sameBrief

+
+Function with same brief + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+void
+sameBrief(int a);
+
+
+
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
a

Describe a

+
+
+
+
+
+

sameBrief

+
+Function with same brief + + +
+
+
+

Synopsis

+
+Declared in <overloads-brief.cpp>
+
+
+void
+sameBrief(
+    int a,
+    int b);
+
+
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + +
NameDescription
a

Describe a again

+
b

Describe b

+
+
+
+ +
+
+

Created with MrDocs

+
+ + \ No newline at end of file diff --git a/test-files/golden-tests/symbols/overloads/overloads-brief.xml b/test-files/golden-tests/symbols/overloads/overloads-brief.xml new file mode 100644 index 000000000..4027d9c71 --- /dev/null +++ b/test-files/golden-tests/symbols/overloads/overloads-brief.xml @@ -0,0 +1,273 @@ + + + + + + + + Overload briefs from function or operator classes + + + + + + + First constructor + + + + + + + + + + + Second constructor + + + Describe a + + + + + + + + + + + + + + + + + Assign from int + + + *this + + + Describe b + + + + + + + + + + + + + + + + + + + Assign from A + + + *this + + + Describe a + + + + + + + + + + + + + + + Addition operator for ints + + + *this + + + Describe a + + + + + + + + + + + + + + + + + Addition operator for As + + + *this + + + Describe a + + + + + + + + + + + + Unary operator- for A + + + No way to generate a brief from the operator kind because there are unary and binary operators. + + + Result + + + + + + + + + + + + + + + + + Binary operator- for A + + + No way to generate a brief from the operator kind. + + + Result + + + + + + + + + Auxiliary class + + + + + + + + Function with no params + + + + + + + + + + + Function with single param + + + Describe a + + + + + + + + + + + + + + + + + Unary operator for A + + + Result + + + + + + + + + + + + + + + + + Unary operator for B + + + Result + + + + + + + + + + + Function with same brief + + + Describe a + + + + + + + + + + + + + + Function with same brief + + + Describe a again + + + Describe b + + + + + diff --git a/test-files/golden-tests/symbols/overloads/overloads-metadata.adoc b/test-files/golden-tests/symbols/overloads/overloads-metadata.adoc new file mode 100644 index 000000000..3d5a24b3f --- /dev/null +++ b/test-files/golden-tests/symbols/overloads/overloads-metadata.adoc @@ -0,0 +1,357 @@ += Reference +:mrdocs: + +[#index] +== Global namespace + + +=== Functions + +[cols=2] +|=== +| Name | Description + +| <> +| Test function + +|=== + +[#f-0e] +== f + + +Test function + +=== Synopses + + +Declared in `<overloads‐metadata.cpp>` + +Test function + + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +template<class A> +int +<>(int a); +---- + +[.small]#<># + +Test function + + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +int +<>( + int a, + void*); +---- + +[.small]#<># + +Test function + + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +template< + class A, + class B> +int +<>( + int a, + int b); +---- + +[.small]#<># + +=== Exceptions + + +|=== +| Name | Thrown on + +| `std::runtime_error` +| Describe the exception + +| `std::logic_error` +| Describe the exception + +|=== + +=== Return Value + + +* The number corresponding to a +* The number corresponding to a and b + +=== Template Parameters + + +|=== +| Name | Description + +| *A* +| Describe A + +| *B* +| Describe B + +|=== + +=== Parameters + + +|=== +| Name | Description + +| *a* +| Describe a + +| *b* +| Describe b + +|=== + +=== Preconditions + + +* a must be greater than 0 + + +* b must be greater than 0 + + + +=== Postconditions + + +* The return value is greater than 0 + + +* The return value is greater than 10 + + + +=== See Also + + +Interesting information 1 + + + +Interesting information 2 + + + + +[#f-08] +== f + + +Test function + +=== Synopsis + + +Declared in `<overloads‐metadata.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +template<class A> +int +f(int a); +---- + +=== Exceptions + + +|=== +| Name | Thrown on + +| `std::runtime_error` +| Describe the exception + +|=== + +=== Return Value + + +The number corresponding to a + +=== Template Parameters + + +|=== +| Name | Description + +| *A* +| Describe A + +|=== + +=== Parameters + + +|=== +| Name | Description + +| *a* +| Describe a + +|=== + +=== Preconditions + + +* a must be greater than 0 + + + +=== Postconditions + + +* The return value is greater than 0 + + + +=== See Also + + +Interesting information 1 + + + + +[#f-04] +== f + + +Test function + +=== Synopsis + + +Declared in `<overloads‐metadata.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +int +f( + int a, + void*); +---- + +=== Return Value + + +The number corresponding to a + +=== Parameters + + +|=== +| Name | Description + +| *a* +| Describe a again + +|=== + +=== See Also + + +Interesting information 2 + + + + +[#f-02] +== f + + +Test function + +=== Synopsis + + +Declared in `<overloads‐metadata.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +template< + class A, + class B> +int +f( + int a, + int b); +---- + +=== Exceptions + + +|=== +| Name | Thrown on + +| `std::logic_error` +| Describe the exception + +|=== + +=== Return Value + + +The number corresponding to a and b + +=== Template Parameters + + +|=== +| Name | Description + +| *A* +| Describe A again + +| *B* +| Describe B + +|=== + +=== Parameters + + +|=== +| Name | Description + +| *a* +| Describe a again + +| *b* +| Describe b + +|=== + +=== Preconditions + + +* a must be greater than 0 + + +* b must be greater than 0 + + + +=== Postconditions + + +* The return value is greater than 10 + + + + + +[.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/symbols/overloads/overloads-metadata.cpp b/test-files/golden-tests/symbols/overloads/overloads-metadata.cpp new file mode 100644 index 000000000..51dcd03c7 --- /dev/null +++ b/test-files/golden-tests/symbols/overloads/overloads-metadata.cpp @@ -0,0 +1,45 @@ +/** Test function + + @throw std::runtime_error Describe the exception + + @pre a must be greater than 0 + @post The return value is greater than 0 + + @tparam A Describe A + @param a Describe a + @return The number corresponding to a + + @see Interesting information 1 + */ +template +int +f(int a); + +/** Test function + + @throw std::logic_error Describe the exception + + @pre a must be greater than 0 + @pre b must be greater than 0 + @post The return value is greater than 10 + + @tparam A Describe A again + @tparam B Describe B + @param a Describe a again + @param b Describe b + @return The number corresponding to a and b + */ +template +int +f(int a, int b); + +/** Test function + + @param a Describe a again + @return The number corresponding to a + + @see Interesting information 2 + */ +int +f(int a, void*); + diff --git a/test-files/golden-tests/symbols/overloads/overloads-metadata.html b/test-files/golden-tests/symbols/overloads/overloads-metadata.html new file mode 100644 index 000000000..ceb2ecf7b --- /dev/null +++ b/test-files/golden-tests/symbols/overloads/overloads-metadata.html @@ -0,0 +1,461 @@ + + +Reference + + +
+

Reference

+
+
+

Global namespace

+
+

Functions

+ + + + + + + + + + +
NameDescription
f Test function + +
+
+
+
+

f

+
+Test function + + +
+
+
+

Synopses

+
+Declared in <overloads-metadata.cpp>
+

+ Test function + +

+ + +
+
+template<class A>
+int
+f(int a);
+
+
» more... + +

+ Test function + +

+ + +
+
+int
+f(
+    int a,
+    void*);
+
+
» more... + +

+ Test function + +

+ + +
+
+template<
+    class A,
+    class B>
+int
+f(
+    int a,
+    int b);
+
+
» more... + + +
+
+

Exceptions

+ + + + + + + + + + + + + + + + + +
NameThrown on
std::runtime_error

Describe the exception

+
std::logic_error

Describe the exception

+
+
+
+

Return Value

+
    +
  • The number corresponding to a

    +
  • +
  • The number corresponding to a and b

    +
  • +
+
+
+

Template Parameters

+ + + + + + + + + + + + + + + + + +
NameDescription
A

Describe A

+
B

Describe B

+
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + +
NameDescription
a

Describe a

+
b

Describe b

+
+
+
+

Preconditions

+
    +
  • a must be greater than 0

    +
  • +
  • b must be greater than 0

    +
  • +
+
+
+

Postconditions

+
    +
  • The return value is greater than 0

    +
  • +
  • The return value is greater than 10

    +
  • +
+
+
+

See Also

+

Interesting information 1

+

+

Interesting information 2

+

+
+
+
+
+

f

+
+Test function + + +
+
+
+

Synopsis

+
+Declared in <overloads-metadata.cpp>
+
+
+template<class A>
+int
+f(int a);
+
+
+
+
+

Exceptions

+ + + + + + + + + + + + + +
NameThrown on
std::runtime_error

Describe the exception

+
+
+
+

Return Value

+

The number corresponding to a

+ +
+
+

Template Parameters

+ + + + + + + + + + + + + +
NameDescription
A

Describe A

+
+
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
a

Describe a

+
+
+
+

Preconditions

+
    +
  • a must be greater than 0

    +
  • +
+
+
+

Postconditions

+
    +
  • The return value is greater than 0

    +
  • +
+
+
+

See Also

+

Interesting information 1

+

+
+
+
+
+

f

+
+Test function + + +
+
+
+

Synopsis

+
+Declared in <overloads-metadata.cpp>
+
+
+int
+f(
+    int a,
+    void*);
+
+
+
+
+

Return Value

+

The number corresponding to a

+ +
+
+

Parameters

+ + + + + + + + + + + + + +
NameDescription
a

Describe a again

+
+
+
+

See Also

+

Interesting information 2

+

+
+
+
+
+

f

+
+Test function + + +
+
+
+

Synopsis

+
+Declared in <overloads-metadata.cpp>
+
+
+template<
+    class A,
+    class B>
+int
+f(
+    int a,
+    int b);
+
+
+
+
+

Exceptions

+ + + + + + + + + + + + + +
NameThrown on
std::logic_error

Describe the exception

+
+
+
+

Return Value

+

The number corresponding to a and b

+ +
+
+

Template Parameters

+ + + + + + + + + + + + + + + + + +
NameDescription
A

Describe A again

+
B

Describe B

+
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + +
NameDescription
a

Describe a again

+
b

Describe b

+
+
+
+

Preconditions

+
    +
  • a must be greater than 0

    +
  • +
  • b must be greater than 0

    +
  • +
+
+
+

Postconditions

+
    +
  • The return value is greater than 10

    +
  • +
+
+
+ +
+
+

Created with MrDocs

+
+ + \ No newline at end of file diff --git a/test-files/golden-tests/symbols/overloads/overloads-metadata.xml b/test-files/golden-tests/symbols/overloads/overloads-metadata.xml new file mode 100644 index 000000000..258246292 --- /dev/null +++ b/test-files/golden-tests/symbols/overloads/overloads-metadata.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + Test function + + + The number corresponding to a + + + Describe a again + + + Interesting information 2 + + + + + + diff --git a/test-files/golden-tests/symbols/overloads/overloads-ostream.adoc b/test-files/golden-tests/symbols/overloads/overloads-ostream.adoc new file mode 100644 index 000000000..521b1ad27 --- /dev/null +++ b/test-files/golden-tests/symbols/overloads/overloads-ostream.adoc @@ -0,0 +1,313 @@ += Reference +:mrdocs: + +[#index] +== Global namespace + + +=== Namespaces + +[cols=1] +|=== +| Name + +| <> +| <> +|=== + +[#left_shift] +== left_shift + + +=== Types + +[cols=1] +|=== +| Name + +| <> +|=== +=== Functions + +[cols=1] +|=== +| Name + +| <> +|=== + +[#left_shift-A] +== <>::A + + +=== Synopsis + + +Declared in `<overloads‐ostream.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +class A; +---- + +=== Member Functions + +[cols=2] +|=== +| Name | Description + +| <> +| + +|=== + + + +[#left_shift-A-operator_lshift-06] +== <>::<>::operator<< + + +=== Synopses + + +Declared in `<overloads‐ostream.cpp>` + + + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<>& +<>(unsigned int shift); +---- + +[.small]#<># + + + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<>& +<>(char shift); +---- + +[.small]#<># + +[#left_shift-A-operator_lshift-0f] +== <>::<>::operator<< + + +=== Synopsis + + +Declared in `<overloads‐ostream.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<>& +operator<<(unsigned int shift); +---- + +[#left_shift-A-operator_lshift-0b] +== <>::<>::operator<< + + +=== Synopsis + + +Declared in `<overloads‐ostream.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<>& +operator<<(char shift); +---- + +[#left_shift-operator_lshift] +== <>::operator<< + + +=== Synopsis + + +Declared in `<overloads‐ostream.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<> +operator<<( + <> const& obj, + double shift); +---- + +[#ostream] +== ostream + + +=== Types + +[cols=1] +|=== +| Name + +| <> +| <> +| <> +|=== +=== Functions + +[cols=2] +|=== +| Name | Description + +| <> +| + +|=== + +[#ostream-B] +== <>::B + + +=== Synopsis + + +Declared in `<overloads‐ostream.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +class B; +---- + +=== Friends + +[cols=1] +|=== +| Name + +| <> +|=== + + + +[#ostream-B-08friend] +== <>::operator<< + + +=== Synopsis + + +Declared in `<overloads‐ostream.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +friend +<>& +operator<<( + <>&, + <>); +---- + +[#ostream-C] +== <>::C + + +=== Synopsis + + +Declared in `<overloads‐ostream.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +class C; +---- + + + + +[#ostream-OStream] +== <>::OStream + + +=== Synopsis + + +Declared in `<overloads‐ostream.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +class OStream; +---- + + + + +[#ostream-operator_lshift-0f] +== <>::operator<< + + +=== Synopses + + +Declared in `<overloads‐ostream.cpp>` + + + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<>& +<>( + <>&, + <>); +---- + +[.small]#<># + + + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<>& +<>( + <>&, + <>); +---- + +[.small]#<># + +[#ostream-operator_lshift-0d] +== <>::operator<< + + +=== Synopsis + + +Declared in `<overloads‐ostream.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<>& +operator<<( + <>&, + <>); +---- + +[#ostream-operator_lshift-0a] +== <>::operator<< + + +=== Synopsis + + +Declared in `<overloads‐ostream.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +<>& +operator<<( + <>&, + <>); +---- + + + +[.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/symbols/overloads/overloads-ostream.cpp b/test-files/golden-tests/symbols/overloads/overloads-ostream.cpp new file mode 100644 index 000000000..a2e4aa92a --- /dev/null +++ b/test-files/golden-tests/symbols/overloads/overloads-ostream.cpp @@ -0,0 +1,36 @@ +namespace left_shift { + +class A { +public: + // member functions cannot be ostream operators + + A& + operator<<(unsigned int shift); + + A& + operator<<(char shift); +}; + +A +operator<<(const A& obj, double shift); + +} + +namespace ostream { + +class OStream {}; + +class B { +public: + friend + OStream& + operator<<(OStream&, B); +}; + +class C {}; + +OStream& +operator<<(OStream&, C); +} + + diff --git a/test-files/golden-tests/symbols/overloads/overloads-ostream.html b/test-files/golden-tests/symbols/overloads/overloads-ostream.html new file mode 100644 index 000000000..ad031d7ee --- /dev/null +++ b/test-files/golden-tests/symbols/overloads/overloads-ostream.html @@ -0,0 +1,353 @@ + + +Reference + + +
+

Reference

+
+
+

Global namespace

+
+

Namespaces

+ + + + + + + + + + + +
Name
left_shift
ostream
+
+
+
+

left_shift

+
+

Types

+ + + + + + + + + + +
Name
A
+

Functions

+ + + + + + + + + + +
Name
operator<<
+
+
+
+

left_shift::A

+
+
+

Synopsis

+
+Declared in <overloads-ostream.cpp>
+
+
+class A;
+
+
+
+

Member Functions

+ + + + + + + + + + +
NameDescription
operator<< +
+ + +
+
+
+

left_shift::A::operator<<

+
+
+

Synopses

+
+Declared in <overloads-ostream.cpp>
+ + +
+
+A&
+operator<<(unsigned int shift);
+
+
» more... + + + +
+
+A&
+operator<<(char shift);
+
+
» more... + + +
+
+
+
+

left_shift::A::operator<<

+
+
+

Synopsis

+
+Declared in <overloads-ostream.cpp>
+
+
+A&
+operator<<(unsigned int shift);
+
+
+
+
+
+
+

left_shift::A::operator<<

+
+
+

Synopsis

+
+Declared in <overloads-ostream.cpp>
+
+
+A&
+operator<<(char shift);
+
+
+
+
+
+
+

left_shift::operator<<

+
+
+

Synopsis

+
+Declared in <overloads-ostream.cpp>
+
+
+A
+operator<<(
+    A const& obj,
+    double shift);
+
+
+
+
+
+
+

ostream

+
+

Types

+ + + + + + + + + + + + +
Name
B
C
OStream
+

Functions

+ + + + + + + + + + +
NameDescription
operator<< +
+
+
+
+

ostream::B

+
+
+

Synopsis

+
+Declared in <overloads-ostream.cpp>
+
+
+class B;
+
+
+
+

Friends

+ + + + + + + + + + +
Name
operator<<
+ + +
+
+
+

ostream::operator<<

+
+
+

Synopsis

+
+Declared in <overloads-ostream.cpp>
+
+
+friend
+OStream&
+operator<<(
+    OStream&,
+    B);
+
+
+
+
+
+
+

ostream::C

+
+
+

Synopsis

+
+Declared in <overloads-ostream.cpp>
+
+
+class C;
+
+
+
+ + +
+
+
+

ostream::OStream

+
+
+

Synopsis

+
+Declared in <overloads-ostream.cpp>
+
+
+class OStream;
+
+
+
+ + +
+
+
+

ostream::operator<<

+
+
+

Synopses

+
+Declared in <overloads-ostream.cpp>
+ + +
+
+OStream&
+operator<<(
+    OStream&,
+    B);
+
+
» more... + + + +
+
+OStream&
+operator<<(
+    OStream&,
+    C);
+
+
» more... + + +
+
+
+
+

ostream::operator<<

+
+
+

Synopsis

+
+Declared in <overloads-ostream.cpp>
+
+
+OStream&
+operator<<(
+    OStream&,
+    B);
+
+
+
+
+
+
+

ostream::operator<<

+
+
+

Synopsis

+
+Declared in <overloads-ostream.cpp>
+
+
+OStream&
+operator<<(
+    OStream&,
+    C);
+
+
+
+
+ +
+
+

Created with MrDocs

+
+ + \ No newline at end of file diff --git a/test-files/golden-tests/symbols/overloads/overloads-ostream.xml b/test-files/golden-tests/symbols/overloads/overloads-ostream.xml new file mode 100644 index 000000000..3fe0f6d5b --- /dev/null +++ b/test-files/golden-tests/symbols/overloads/overloads-ostream.xml @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test-files/golden-tests/metadata/overloads.adoc b/test-files/golden-tests/symbols/overloads/overloads.adoc similarity index 96% rename from test-files/golden-tests/metadata/overloads.adoc rename to test-files/golden-tests/symbols/overloads/overloads.adoc index 35a6d7a7a..de53c4968 100644 --- a/test-files/golden-tests/metadata/overloads.adoc +++ b/test-files/golden-tests/symbols/overloads/overloads.adoc @@ -16,12 +16,16 @@ |=== === Functions -[cols=1] +[cols=2] |=== -| Name +| Name | Description | <> +| + | <> +| + |=== [#A] @@ -40,19 +44,23 @@ struct A; === Member Functions -[cols=1] +[cols=2] |=== -| Name +| Name | Description | <> +| + |=== === Static Member Functions -[cols=1] +[cols=2] |=== -| Name +| Name | Description | <> +| + |=== === Friends @@ -70,11 +78,13 @@ struct A; == <>::f -=== Synopsis +=== Synopses Declared in `<overloads.cpp>` + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void @@ -83,6 +93,8 @@ void [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int @@ -125,11 +137,13 @@ f(int); == <>::g -=== Synopsis +=== Synopses Declared in `<overloads.cpp>` + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static @@ -139,6 +153,8 @@ void [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- static @@ -237,11 +253,13 @@ struct B; == f -=== Synopsis +=== Synopses Declared in `<overloads.cpp>` + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void @@ -250,6 +268,8 @@ void [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- int @@ -292,11 +312,13 @@ f(int); == operator== -=== Synopsis +=== Synopses Declared in `<overloads.cpp>` + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool @@ -307,6 +329,8 @@ bool [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool @@ -317,6 +341,8 @@ bool [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool @@ -327,6 +353,8 @@ bool [.small]#<># + + [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- bool diff --git a/test-files/golden-tests/metadata/overloads.cpp b/test-files/golden-tests/symbols/overloads/overloads.cpp similarity index 100% rename from test-files/golden-tests/metadata/overloads.cpp rename to test-files/golden-tests/symbols/overloads/overloads.cpp diff --git a/test-files/golden-tests/metadata/overloads.html b/test-files/golden-tests/symbols/overloads/overloads.html similarity index 94% rename from test-files/golden-tests/metadata/overloads.html rename to test-files/golden-tests/symbols/overloads/overloads.html index 5468e1f71..7b6a14877 100644 --- a/test-files/golden-tests/metadata/overloads.html +++ b/test-files/golden-tests/symbols/overloads/overloads.html @@ -26,13 +26,15 @@

Functions

- + - - + +
NameNameDescription
f
operator==
f +
operator== +
@@ -54,24 +56,26 @@

Member Functions

- + - +
NameNameDescription
f
f +

Static Member Functions

- + - +
NameNameDescription
g
g +

Friends

@@ -95,9 +99,11 @@

Friends

A::f

-

Synopsis

+

Synopses

Declared in <overloads.cpp>
+ +
 
 void
@@ -105,6 +111,8 @@ 

Synopsis

» more... + +
 
 int
@@ -152,9 +160,11 @@ 

Synopsis

A::g

-

Synopsis

+

Synopses

Declared in <overloads.cpp>
+ +
 
 static
@@ -163,6 +173,8 @@ 

Synopsis

» more... + +
 
 static
@@ -268,9 +280,11 @@ 

Synopsis

f

-

Synopsis

+

Synopses

Declared in <overloads.cpp>
+ +
 
 void
@@ -278,6 +292,8 @@ 

Synopsis

» more... + +
 
 int
@@ -325,9 +341,11 @@ 

Synopsis

operator==

-

Synopsis

+

Synopses

Declared in <overloads.cpp>
+ +
 
 bool
@@ -337,6 +355,8 @@ 

Synopsis

» more... + +
 
 bool
@@ -346,6 +366,8 @@ 

Synopsis

» more... + +
 
 bool
@@ -355,6 +377,8 @@ 

Synopsis

» more... + +
 
 bool
diff --git a/test-files/golden-tests/metadata/overloads.xml b/test-files/golden-tests/symbols/overloads/overloads.xml
similarity index 100%
rename from test-files/golden-tests/metadata/overloads.xml
rename to test-files/golden-tests/symbols/overloads/overloads.xml
diff --git a/test-files/golden-tests/metadata/class-private-alias.adoc b/test-files/golden-tests/symbols/record/class-private-alias.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/class-private-alias.adoc
rename to test-files/golden-tests/symbols/record/class-private-alias.adoc
diff --git a/test-files/golden-tests/metadata/class-private-alias.cpp b/test-files/golden-tests/symbols/record/class-private-alias.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/class-private-alias.cpp
rename to test-files/golden-tests/symbols/record/class-private-alias.cpp
diff --git a/test-files/golden-tests/metadata/class-private-alias.html b/test-files/golden-tests/symbols/record/class-private-alias.html
similarity index 100%
rename from test-files/golden-tests/metadata/class-private-alias.html
rename to test-files/golden-tests/symbols/record/class-private-alias.html
diff --git a/test-files/golden-tests/metadata/class-private-alias.xml b/test-files/golden-tests/symbols/record/class-private-alias.xml
similarity index 100%
rename from test-files/golden-tests/metadata/class-private-alias.xml
rename to test-files/golden-tests/symbols/record/class-private-alias.xml
diff --git a/test-files/golden-tests/metadata/class-template-partial-spec.adoc b/test-files/golden-tests/symbols/record/class-template-partial-spec.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-partial-spec.adoc
rename to test-files/golden-tests/symbols/record/class-template-partial-spec.adoc
diff --git a/test-files/golden-tests/metadata/class-template-partial-spec.cpp b/test-files/golden-tests/symbols/record/class-template-partial-spec.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-partial-spec.cpp
rename to test-files/golden-tests/symbols/record/class-template-partial-spec.cpp
diff --git a/test-files/golden-tests/metadata/class-template-partial-spec.html b/test-files/golden-tests/symbols/record/class-template-partial-spec.html
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-partial-spec.html
rename to test-files/golden-tests/symbols/record/class-template-partial-spec.html
diff --git a/test-files/golden-tests/metadata/class-template-partial-spec.xml b/test-files/golden-tests/symbols/record/class-template-partial-spec.xml
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-partial-spec.xml
rename to test-files/golden-tests/symbols/record/class-template-partial-spec.xml
diff --git a/test-files/golden-tests/metadata/class-template-spec.adoc b/test-files/golden-tests/symbols/record/class-template-spec.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-spec.adoc
rename to test-files/golden-tests/symbols/record/class-template-spec.adoc
diff --git a/test-files/golden-tests/metadata/class-template-spec.cpp b/test-files/golden-tests/symbols/record/class-template-spec.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-spec.cpp
rename to test-files/golden-tests/symbols/record/class-template-spec.cpp
diff --git a/test-files/golden-tests/metadata/class-template-spec.html b/test-files/golden-tests/symbols/record/class-template-spec.html
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-spec.html
rename to test-files/golden-tests/symbols/record/class-template-spec.html
diff --git a/test-files/golden-tests/metadata/class-template-spec.xml b/test-files/golden-tests/symbols/record/class-template-spec.xml
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-spec.xml
rename to test-files/golden-tests/symbols/record/class-template-spec.xml
diff --git a/test-files/golden-tests/metadata/class-template-specializations-1.adoc b/test-files/golden-tests/symbols/record/class-template-specializations-1.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-specializations-1.adoc
rename to test-files/golden-tests/symbols/record/class-template-specializations-1.adoc
diff --git a/test-files/golden-tests/metadata/class-template-specializations-1.cpp b/test-files/golden-tests/symbols/record/class-template-specializations-1.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-specializations-1.cpp
rename to test-files/golden-tests/symbols/record/class-template-specializations-1.cpp
diff --git a/test-files/golden-tests/metadata/class-template-specializations-1.html b/test-files/golden-tests/symbols/record/class-template-specializations-1.html
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-specializations-1.html
rename to test-files/golden-tests/symbols/record/class-template-specializations-1.html
diff --git a/test-files/golden-tests/metadata/class-template-specializations-1.xml b/test-files/golden-tests/symbols/record/class-template-specializations-1.xml
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-specializations-1.xml
rename to test-files/golden-tests/symbols/record/class-template-specializations-1.xml
diff --git a/test-files/golden-tests/metadata/class-template-specializations-2.adoc b/test-files/golden-tests/symbols/record/class-template-specializations-2.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-specializations-2.adoc
rename to test-files/golden-tests/symbols/record/class-template-specializations-2.adoc
diff --git a/test-files/golden-tests/metadata/class-template-specializations-2.cpp b/test-files/golden-tests/symbols/record/class-template-specializations-2.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-specializations-2.cpp
rename to test-files/golden-tests/symbols/record/class-template-specializations-2.cpp
diff --git a/test-files/golden-tests/metadata/class-template-specializations-2.html b/test-files/golden-tests/symbols/record/class-template-specializations-2.html
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-specializations-2.html
rename to test-files/golden-tests/symbols/record/class-template-specializations-2.html
diff --git a/test-files/golden-tests/metadata/class-template-specializations-2.xml b/test-files/golden-tests/symbols/record/class-template-specializations-2.xml
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-specializations-2.xml
rename to test-files/golden-tests/symbols/record/class-template-specializations-2.xml
diff --git a/test-files/golden-tests/metadata/class-template-specializations-3.adoc b/test-files/golden-tests/symbols/record/class-template-specializations-3.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-specializations-3.adoc
rename to test-files/golden-tests/symbols/record/class-template-specializations-3.adoc
diff --git a/test-files/golden-tests/metadata/class-template-specializations-3.cpp b/test-files/golden-tests/symbols/record/class-template-specializations-3.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-specializations-3.cpp
rename to test-files/golden-tests/symbols/record/class-template-specializations-3.cpp
diff --git a/test-files/golden-tests/metadata/class-template-specializations-3.html b/test-files/golden-tests/symbols/record/class-template-specializations-3.html
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-specializations-3.html
rename to test-files/golden-tests/symbols/record/class-template-specializations-3.html
diff --git a/test-files/golden-tests/metadata/class-template-specializations-3.xml b/test-files/golden-tests/symbols/record/class-template-specializations-3.xml
similarity index 100%
rename from test-files/golden-tests/metadata/class-template-specializations-3.xml
rename to test-files/golden-tests/symbols/record/class-template-specializations-3.xml
diff --git a/test-files/golden-tests/metadata/class-template.adoc b/test-files/golden-tests/symbols/record/class-template.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/class-template.adoc
rename to test-files/golden-tests/symbols/record/class-template.adoc
diff --git a/test-files/golden-tests/metadata/class-template.cpp b/test-files/golden-tests/symbols/record/class-template.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/class-template.cpp
rename to test-files/golden-tests/symbols/record/class-template.cpp
diff --git a/test-files/golden-tests/metadata/class-template.html b/test-files/golden-tests/symbols/record/class-template.html
similarity index 100%
rename from test-files/golden-tests/metadata/class-template.html
rename to test-files/golden-tests/symbols/record/class-template.html
diff --git a/test-files/golden-tests/metadata/class-template.xml b/test-files/golden-tests/symbols/record/class-template.xml
similarity index 100%
rename from test-files/golden-tests/metadata/class-template.xml
rename to test-files/golden-tests/symbols/record/class-template.xml
diff --git a/test-files/golden-tests/metadata/local-class.adoc b/test-files/golden-tests/symbols/record/local-class.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/local-class.adoc
rename to test-files/golden-tests/symbols/record/local-class.adoc
diff --git a/test-files/golden-tests/metadata/local-class.cpp b/test-files/golden-tests/symbols/record/local-class.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/local-class.cpp
rename to test-files/golden-tests/symbols/record/local-class.cpp
diff --git a/test-files/golden-tests/metadata/local-class.html b/test-files/golden-tests/symbols/record/local-class.html
similarity index 100%
rename from test-files/golden-tests/metadata/local-class.html
rename to test-files/golden-tests/symbols/record/local-class.html
diff --git a/test-files/golden-tests/metadata/local-class.xml b/test-files/golden-tests/symbols/record/local-class.xml
similarity index 100%
rename from test-files/golden-tests/metadata/local-class.xml
rename to test-files/golden-tests/symbols/record/local-class.xml
diff --git a/test-files/golden-tests/metadata/out-of-line-record-def.adoc b/test-files/golden-tests/symbols/record/out-of-line-record-def.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/out-of-line-record-def.adoc
rename to test-files/golden-tests/symbols/record/out-of-line-record-def.adoc
diff --git a/test-files/golden-tests/metadata/out-of-line-record-def.cpp b/test-files/golden-tests/symbols/record/out-of-line-record-def.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/out-of-line-record-def.cpp
rename to test-files/golden-tests/symbols/record/out-of-line-record-def.cpp
diff --git a/test-files/golden-tests/metadata/out-of-line-record-def.html b/test-files/golden-tests/symbols/record/out-of-line-record-def.html
similarity index 100%
rename from test-files/golden-tests/metadata/out-of-line-record-def.html
rename to test-files/golden-tests/symbols/record/out-of-line-record-def.html
diff --git a/test-files/golden-tests/metadata/out-of-line-record-def.xml b/test-files/golden-tests/symbols/record/out-of-line-record-def.xml
similarity index 100%
rename from test-files/golden-tests/metadata/out-of-line-record-def.xml
rename to test-files/golden-tests/symbols/record/out-of-line-record-def.xml
diff --git a/test-files/golden-tests/metadata/record-1.adoc b/test-files/golden-tests/symbols/record/record-1.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/record-1.adoc
rename to test-files/golden-tests/symbols/record/record-1.adoc
diff --git a/test-files/golden-tests/metadata/record-1.cpp b/test-files/golden-tests/symbols/record/record-1.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/record-1.cpp
rename to test-files/golden-tests/symbols/record/record-1.cpp
diff --git a/test-files/golden-tests/metadata/record-1.html b/test-files/golden-tests/symbols/record/record-1.html
similarity index 100%
rename from test-files/golden-tests/metadata/record-1.html
rename to test-files/golden-tests/symbols/record/record-1.html
diff --git a/test-files/golden-tests/metadata/record-1.xml b/test-files/golden-tests/symbols/record/record-1.xml
similarity index 100%
rename from test-files/golden-tests/metadata/record-1.xml
rename to test-files/golden-tests/symbols/record/record-1.xml
diff --git a/test-files/golden-tests/metadata/record-access.adoc b/test-files/golden-tests/symbols/record/record-access.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/record-access.adoc
rename to test-files/golden-tests/symbols/record/record-access.adoc
diff --git a/test-files/golden-tests/metadata/record-access.cpp b/test-files/golden-tests/symbols/record/record-access.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/record-access.cpp
rename to test-files/golden-tests/symbols/record/record-access.cpp
diff --git a/test-files/golden-tests/metadata/record-access.html b/test-files/golden-tests/symbols/record/record-access.html
similarity index 100%
rename from test-files/golden-tests/metadata/record-access.html
rename to test-files/golden-tests/symbols/record/record-access.html
diff --git a/test-files/golden-tests/metadata/record-access.xml b/test-files/golden-tests/symbols/record/record-access.xml
similarity index 100%
rename from test-files/golden-tests/metadata/record-access.xml
rename to test-files/golden-tests/symbols/record/record-access.xml
diff --git a/test-files/golden-tests/metadata/record-access.yml b/test-files/golden-tests/symbols/record/record-access.yml
similarity index 100%
rename from test-files/golden-tests/metadata/record-access.yml
rename to test-files/golden-tests/symbols/record/record-access.yml
diff --git a/test-files/golden-tests/metadata/record-data.adoc b/test-files/golden-tests/symbols/record/record-data.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/record-data.adoc
rename to test-files/golden-tests/symbols/record/record-data.adoc
diff --git a/test-files/golden-tests/metadata/record-data.cpp b/test-files/golden-tests/symbols/record/record-data.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/record-data.cpp
rename to test-files/golden-tests/symbols/record/record-data.cpp
diff --git a/test-files/golden-tests/metadata/record-data.html b/test-files/golden-tests/symbols/record/record-data.html
similarity index 100%
rename from test-files/golden-tests/metadata/record-data.html
rename to test-files/golden-tests/symbols/record/record-data.html
diff --git a/test-files/golden-tests/metadata/record-data.xml b/test-files/golden-tests/symbols/record/record-data.xml
similarity index 100%
rename from test-files/golden-tests/metadata/record-data.xml
rename to test-files/golden-tests/symbols/record/record-data.xml
diff --git a/test-files/golden-tests/metadata/record-data.yml b/test-files/golden-tests/symbols/record/record-data.yml
similarity index 100%
rename from test-files/golden-tests/metadata/record-data.yml
rename to test-files/golden-tests/symbols/record/record-data.yml
diff --git a/test-files/golden-tests/metadata/record-inheritance.adoc b/test-files/golden-tests/symbols/record/record-inheritance.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/record-inheritance.adoc
rename to test-files/golden-tests/symbols/record/record-inheritance.adoc
diff --git a/test-files/golden-tests/metadata/record-inheritance.cpp b/test-files/golden-tests/symbols/record/record-inheritance.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/record-inheritance.cpp
rename to test-files/golden-tests/symbols/record/record-inheritance.cpp
diff --git a/test-files/golden-tests/metadata/record-inheritance.html b/test-files/golden-tests/symbols/record/record-inheritance.html
similarity index 100%
rename from test-files/golden-tests/metadata/record-inheritance.html
rename to test-files/golden-tests/symbols/record/record-inheritance.html
diff --git a/test-files/golden-tests/metadata/record-inheritance.xml b/test-files/golden-tests/symbols/record/record-inheritance.xml
similarity index 100%
rename from test-files/golden-tests/metadata/record-inheritance.xml
rename to test-files/golden-tests/symbols/record/record-inheritance.xml
diff --git a/test-files/golden-tests/metadata/record-inheritance.yml b/test-files/golden-tests/symbols/record/record-inheritance.yml
similarity index 100%
rename from test-files/golden-tests/metadata/record-inheritance.yml
rename to test-files/golden-tests/symbols/record/record-inheritance.yml
diff --git a/test-files/golden-tests/metadata/template-specialization-inheritance.adoc b/test-files/golden-tests/symbols/record/template-specialization-inheritance.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/template-specialization-inheritance.adoc
rename to test-files/golden-tests/symbols/record/template-specialization-inheritance.adoc
diff --git a/test-files/golden-tests/metadata/template-specialization-inheritance.cpp b/test-files/golden-tests/symbols/record/template-specialization-inheritance.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/template-specialization-inheritance.cpp
rename to test-files/golden-tests/symbols/record/template-specialization-inheritance.cpp
diff --git a/test-files/golden-tests/metadata/template-specialization-inheritance.html b/test-files/golden-tests/symbols/record/template-specialization-inheritance.html
similarity index 100%
rename from test-files/golden-tests/metadata/template-specialization-inheritance.html
rename to test-files/golden-tests/symbols/record/template-specialization-inheritance.html
diff --git a/test-files/golden-tests/metadata/template-specialization-inheritance.xml b/test-files/golden-tests/symbols/record/template-specialization-inheritance.xml
similarity index 100%
rename from test-files/golden-tests/metadata/template-specialization-inheritance.xml
rename to test-files/golden-tests/symbols/record/template-specialization-inheritance.xml
diff --git a/test-files/golden-tests/metadata/union.adoc b/test-files/golden-tests/symbols/record/union.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/union.adoc
rename to test-files/golden-tests/symbols/record/union.adoc
diff --git a/test-files/golden-tests/metadata/union.cpp b/test-files/golden-tests/symbols/record/union.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/union.cpp
rename to test-files/golden-tests/symbols/record/union.cpp
diff --git a/test-files/golden-tests/metadata/union.html b/test-files/golden-tests/symbols/record/union.html
similarity index 100%
rename from test-files/golden-tests/metadata/union.html
rename to test-files/golden-tests/symbols/record/union.html
diff --git a/test-files/golden-tests/metadata/union.xml b/test-files/golden-tests/symbols/record/union.xml
similarity index 100%
rename from test-files/golden-tests/metadata/union.xml
rename to test-files/golden-tests/symbols/record/union.xml
diff --git a/test-files/golden-tests/metadata/alias-template.adoc b/test-files/golden-tests/symbols/using/alias-template.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/alias-template.adoc
rename to test-files/golden-tests/symbols/using/alias-template.adoc
diff --git a/test-files/golden-tests/metadata/alias-template.cpp b/test-files/golden-tests/symbols/using/alias-template.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/alias-template.cpp
rename to test-files/golden-tests/symbols/using/alias-template.cpp
diff --git a/test-files/golden-tests/metadata/alias-template.html b/test-files/golden-tests/symbols/using/alias-template.html
similarity index 100%
rename from test-files/golden-tests/metadata/alias-template.html
rename to test-files/golden-tests/symbols/using/alias-template.html
diff --git a/test-files/golden-tests/metadata/alias-template.xml b/test-files/golden-tests/symbols/using/alias-template.xml
similarity index 100%
rename from test-files/golden-tests/metadata/alias-template.xml
rename to test-files/golden-tests/symbols/using/alias-template.xml
diff --git a/test-files/golden-tests/metadata/decay-to-primary.adoc b/test-files/golden-tests/symbols/using/decay-to-primary.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/decay-to-primary.adoc
rename to test-files/golden-tests/symbols/using/decay-to-primary.adoc
diff --git a/test-files/golden-tests/metadata/decay-to-primary.cpp b/test-files/golden-tests/symbols/using/decay-to-primary.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/decay-to-primary.cpp
rename to test-files/golden-tests/symbols/using/decay-to-primary.cpp
diff --git a/test-files/golden-tests/metadata/decay-to-primary.html b/test-files/golden-tests/symbols/using/decay-to-primary.html
similarity index 100%
rename from test-files/golden-tests/metadata/decay-to-primary.html
rename to test-files/golden-tests/symbols/using/decay-to-primary.html
diff --git a/test-files/golden-tests/metadata/decay-to-primary.xml b/test-files/golden-tests/symbols/using/decay-to-primary.xml
similarity index 100%
rename from test-files/golden-tests/metadata/decay-to-primary.xml
rename to test-files/golden-tests/symbols/using/decay-to-primary.xml
diff --git a/test-files/golden-tests/metadata/dependency-propagation.adoc b/test-files/golden-tests/symbols/using/dependency-propagation.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/dependency-propagation.adoc
rename to test-files/golden-tests/symbols/using/dependency-propagation.adoc
diff --git a/test-files/golden-tests/metadata/dependency-propagation.cpp b/test-files/golden-tests/symbols/using/dependency-propagation.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/dependency-propagation.cpp
rename to test-files/golden-tests/symbols/using/dependency-propagation.cpp
diff --git a/test-files/golden-tests/metadata/dependency-propagation.html b/test-files/golden-tests/symbols/using/dependency-propagation.html
similarity index 100%
rename from test-files/golden-tests/metadata/dependency-propagation.html
rename to test-files/golden-tests/symbols/using/dependency-propagation.html
diff --git a/test-files/golden-tests/metadata/dependency-propagation.xml b/test-files/golden-tests/symbols/using/dependency-propagation.xml
similarity index 100%
rename from test-files/golden-tests/metadata/dependency-propagation.xml
rename to test-files/golden-tests/symbols/using/dependency-propagation.xml
diff --git a/test-files/golden-tests/metadata/dependency-propagation.yml b/test-files/golden-tests/symbols/using/dependency-propagation.yml
similarity index 100%
rename from test-files/golden-tests/metadata/dependency-propagation.yml
rename to test-files/golden-tests/symbols/using/dependency-propagation.yml
diff --git a/test-files/golden-tests/metadata/implicit-instantiation-member-ref.adoc b/test-files/golden-tests/symbols/using/implicit-instantiation-member-ref.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/implicit-instantiation-member-ref.adoc
rename to test-files/golden-tests/symbols/using/implicit-instantiation-member-ref.adoc
diff --git a/test-files/golden-tests/metadata/implicit-instantiation-member-ref.cpp b/test-files/golden-tests/symbols/using/implicit-instantiation-member-ref.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/implicit-instantiation-member-ref.cpp
rename to test-files/golden-tests/symbols/using/implicit-instantiation-member-ref.cpp
diff --git a/test-files/golden-tests/metadata/implicit-instantiation-member-ref.html b/test-files/golden-tests/symbols/using/implicit-instantiation-member-ref.html
similarity index 100%
rename from test-files/golden-tests/metadata/implicit-instantiation-member-ref.html
rename to test-files/golden-tests/symbols/using/implicit-instantiation-member-ref.html
diff --git a/test-files/golden-tests/metadata/implicit-instantiation-member-ref.xml b/test-files/golden-tests/symbols/using/implicit-instantiation-member-ref.xml
similarity index 100%
rename from test-files/golden-tests/metadata/implicit-instantiation-member-ref.xml
rename to test-files/golden-tests/symbols/using/implicit-instantiation-member-ref.xml
diff --git a/test-files/golden-tests/metadata/using-1.adoc b/test-files/golden-tests/symbols/using/using-1.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/using-1.adoc
rename to test-files/golden-tests/symbols/using/using-1.adoc
diff --git a/test-files/golden-tests/metadata/using-1.cpp b/test-files/golden-tests/symbols/using/using-1.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/using-1.cpp
rename to test-files/golden-tests/symbols/using/using-1.cpp
diff --git a/test-files/golden-tests/metadata/using-1.html b/test-files/golden-tests/symbols/using/using-1.html
similarity index 100%
rename from test-files/golden-tests/metadata/using-1.html
rename to test-files/golden-tests/symbols/using/using-1.html
diff --git a/test-files/golden-tests/metadata/using-1.xml b/test-files/golden-tests/symbols/using/using-1.xml
similarity index 100%
rename from test-files/golden-tests/metadata/using-1.xml
rename to test-files/golden-tests/symbols/using/using-1.xml
diff --git a/test-files/golden-tests/metadata/using-2.adoc b/test-files/golden-tests/symbols/using/using-2.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/using-2.adoc
rename to test-files/golden-tests/symbols/using/using-2.adoc
diff --git a/test-files/golden-tests/metadata/using-2.cpp b/test-files/golden-tests/symbols/using/using-2.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/using-2.cpp
rename to test-files/golden-tests/symbols/using/using-2.cpp
diff --git a/test-files/golden-tests/metadata/using-2.html b/test-files/golden-tests/symbols/using/using-2.html
similarity index 100%
rename from test-files/golden-tests/metadata/using-2.html
rename to test-files/golden-tests/symbols/using/using-2.html
diff --git a/test-files/golden-tests/metadata/using-2.xml b/test-files/golden-tests/symbols/using/using-2.xml
similarity index 100%
rename from test-files/golden-tests/metadata/using-2.xml
rename to test-files/golden-tests/symbols/using/using-2.xml
diff --git a/test-files/golden-tests/metadata/using-3.adoc b/test-files/golden-tests/symbols/using/using-3.adoc
similarity index 97%
rename from test-files/golden-tests/metadata/using-3.adoc
rename to test-files/golden-tests/symbols/using/using-3.adoc
index cc16e6c5c..742851965 100644
--- a/test-files/golden-tests/metadata/using-3.adoc
+++ b/test-files/golden-tests/symbols/using/using-3.adoc
@@ -114,11 +114,13 @@ struct C
 
 === Member Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <> 
+| 
+
 |===
 === Using Declarations
 
@@ -136,11 +138,13 @@ struct C
 == <>::f
 
 
-=== Synopsis
+=== Synopses
 
 
 Declared in `<using‐3.cpp>`
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 void
@@ -149,6 +153,8 @@ void
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 void
diff --git a/test-files/golden-tests/metadata/using-3.cpp b/test-files/golden-tests/symbols/using/using-3.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/using-3.cpp
rename to test-files/golden-tests/symbols/using/using-3.cpp
diff --git a/test-files/golden-tests/metadata/using-3.html b/test-files/golden-tests/symbols/using/using-3.html
similarity index 97%
rename from test-files/golden-tests/metadata/using-3.html
rename to test-files/golden-tests/symbols/using/using-3.html
index 889b50e6c..965f2d39b 100644
--- a/test-files/golden-tests/metadata/using-3.html
+++ b/test-files/golden-tests/symbols/using/using-3.html
@@ -134,12 +134,13 @@ 

Member Functions

- + - +
NameNameDescription
f
f +

Using Declarations

@@ -163,9 +164,11 @@

Using Declarations

C::f

-

Synopsis

+

Synopses

Declared in <using-3.cpp>
+ +
 
 void
@@ -173,6 +176,8 @@ 

Synopsis

» more... + +
 
 void
diff --git a/test-files/golden-tests/metadata/using-3.xml b/test-files/golden-tests/symbols/using/using-3.xml
similarity index 100%
rename from test-files/golden-tests/metadata/using-3.xml
rename to test-files/golden-tests/symbols/using/using-3.xml
diff --git a/test-files/golden-tests/metadata/no_unique_address.adoc b/test-files/golden-tests/symbols/variable/no_unique_address.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/no_unique_address.adoc
rename to test-files/golden-tests/symbols/variable/no_unique_address.adoc
diff --git a/test-files/golden-tests/metadata/no_unique_address.cpp b/test-files/golden-tests/symbols/variable/no_unique_address.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/no_unique_address.cpp
rename to test-files/golden-tests/symbols/variable/no_unique_address.cpp
diff --git a/test-files/golden-tests/metadata/no_unique_address.html b/test-files/golden-tests/symbols/variable/no_unique_address.html
similarity index 100%
rename from test-files/golden-tests/metadata/no_unique_address.html
rename to test-files/golden-tests/symbols/variable/no_unique_address.html
diff --git a/test-files/golden-tests/metadata/no_unique_address.xml b/test-files/golden-tests/symbols/variable/no_unique_address.xml
similarity index 100%
rename from test-files/golden-tests/metadata/no_unique_address.xml
rename to test-files/golden-tests/symbols/variable/no_unique_address.xml
diff --git a/test-files/golden-tests/metadata/ns-variables.adoc b/test-files/golden-tests/symbols/variable/ns-variables.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/ns-variables.adoc
rename to test-files/golden-tests/symbols/variable/ns-variables.adoc
diff --git a/test-files/golden-tests/metadata/ns-variables.cpp b/test-files/golden-tests/symbols/variable/ns-variables.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/ns-variables.cpp
rename to test-files/golden-tests/symbols/variable/ns-variables.cpp
diff --git a/test-files/golden-tests/metadata/ns-variables.html b/test-files/golden-tests/symbols/variable/ns-variables.html
similarity index 100%
rename from test-files/golden-tests/metadata/ns-variables.html
rename to test-files/golden-tests/symbols/variable/ns-variables.html
diff --git a/test-files/golden-tests/metadata/ns-variables.xml b/test-files/golden-tests/symbols/variable/ns-variables.xml
similarity index 100%
rename from test-files/golden-tests/metadata/ns-variables.xml
rename to test-files/golden-tests/symbols/variable/ns-variables.xml
diff --git a/test-files/golden-tests/metadata/ns-variables.yml b/test-files/golden-tests/symbols/variable/ns-variables.yml
similarity index 100%
rename from test-files/golden-tests/metadata/ns-variables.yml
rename to test-files/golden-tests/symbols/variable/ns-variables.yml
diff --git a/test-files/golden-tests/metadata/static-data-def-constexpr.adoc b/test-files/golden-tests/symbols/variable/static-data-def-constexpr.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/static-data-def-constexpr.adoc
rename to test-files/golden-tests/symbols/variable/static-data-def-constexpr.adoc
diff --git a/test-files/golden-tests/metadata/static-data-def-constexpr.cpp b/test-files/golden-tests/symbols/variable/static-data-def-constexpr.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/static-data-def-constexpr.cpp
rename to test-files/golden-tests/symbols/variable/static-data-def-constexpr.cpp
diff --git a/test-files/golden-tests/metadata/static-data-def-constexpr.html b/test-files/golden-tests/symbols/variable/static-data-def-constexpr.html
similarity index 100%
rename from test-files/golden-tests/metadata/static-data-def-constexpr.html
rename to test-files/golden-tests/symbols/variable/static-data-def-constexpr.html
diff --git a/test-files/golden-tests/metadata/static-data-def-constexpr.xml b/test-files/golden-tests/symbols/variable/static-data-def-constexpr.xml
similarity index 100%
rename from test-files/golden-tests/metadata/static-data-def-constexpr.xml
rename to test-files/golden-tests/symbols/variable/static-data-def-constexpr.xml
diff --git a/test-files/golden-tests/metadata/static-data-def.adoc b/test-files/golden-tests/symbols/variable/static-data-def.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/static-data-def.adoc
rename to test-files/golden-tests/symbols/variable/static-data-def.adoc
diff --git a/test-files/golden-tests/metadata/static-data-def.cpp b/test-files/golden-tests/symbols/variable/static-data-def.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/static-data-def.cpp
rename to test-files/golden-tests/symbols/variable/static-data-def.cpp
diff --git a/test-files/golden-tests/metadata/static-data-def.html b/test-files/golden-tests/symbols/variable/static-data-def.html
similarity index 100%
rename from test-files/golden-tests/metadata/static-data-def.html
rename to test-files/golden-tests/symbols/variable/static-data-def.html
diff --git a/test-files/golden-tests/metadata/static-data-def.xml b/test-files/golden-tests/symbols/variable/static-data-def.xml
similarity index 100%
rename from test-files/golden-tests/metadata/static-data-def.xml
rename to test-files/golden-tests/symbols/variable/static-data-def.xml
diff --git a/test-files/golden-tests/metadata/static-data-template.adoc b/test-files/golden-tests/symbols/variable/static-data-template.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/static-data-template.adoc
rename to test-files/golden-tests/symbols/variable/static-data-template.adoc
diff --git a/test-files/golden-tests/metadata/static-data-template.cpp b/test-files/golden-tests/symbols/variable/static-data-template.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/static-data-template.cpp
rename to test-files/golden-tests/symbols/variable/static-data-template.cpp
diff --git a/test-files/golden-tests/metadata/static-data-template.html b/test-files/golden-tests/symbols/variable/static-data-template.html
similarity index 100%
rename from test-files/golden-tests/metadata/static-data-template.html
rename to test-files/golden-tests/symbols/variable/static-data-template.html
diff --git a/test-files/golden-tests/metadata/static-data-template.xml b/test-files/golden-tests/symbols/variable/static-data-template.xml
similarity index 100%
rename from test-files/golden-tests/metadata/static-data-template.xml
rename to test-files/golden-tests/symbols/variable/static-data-template.xml
diff --git a/test-files/golden-tests/metadata/var-inline-constexpr.adoc b/test-files/golden-tests/symbols/variable/var-inline-constexpr.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/var-inline-constexpr.adoc
rename to test-files/golden-tests/symbols/variable/var-inline-constexpr.adoc
diff --git a/test-files/golden-tests/metadata/var-inline-constexpr.cpp b/test-files/golden-tests/symbols/variable/var-inline-constexpr.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/var-inline-constexpr.cpp
rename to test-files/golden-tests/symbols/variable/var-inline-constexpr.cpp
diff --git a/test-files/golden-tests/metadata/var-inline-constexpr.html b/test-files/golden-tests/symbols/variable/var-inline-constexpr.html
similarity index 100%
rename from test-files/golden-tests/metadata/var-inline-constexpr.html
rename to test-files/golden-tests/symbols/variable/var-inline-constexpr.html
diff --git a/test-files/golden-tests/metadata/var-inline-constexpr.xml b/test-files/golden-tests/symbols/variable/var-inline-constexpr.xml
similarity index 100%
rename from test-files/golden-tests/metadata/var-inline-constexpr.xml
rename to test-files/golden-tests/symbols/variable/var-inline-constexpr.xml
diff --git a/test-files/golden-tests/metadata/var-template.adoc b/test-files/golden-tests/symbols/variable/var-template.adoc
similarity index 100%
rename from test-files/golden-tests/metadata/var-template.adoc
rename to test-files/golden-tests/symbols/variable/var-template.adoc
diff --git a/test-files/golden-tests/metadata/var-template.cpp b/test-files/golden-tests/symbols/variable/var-template.cpp
similarity index 100%
rename from test-files/golden-tests/metadata/var-template.cpp
rename to test-files/golden-tests/symbols/variable/var-template.cpp
diff --git a/test-files/golden-tests/metadata/var-template.html b/test-files/golden-tests/symbols/variable/var-template.html
similarity index 100%
rename from test-files/golden-tests/metadata/var-template.html
rename to test-files/golden-tests/symbols/variable/var-template.html
diff --git a/test-files/golden-tests/metadata/var-template.xml b/test-files/golden-tests/symbols/variable/var-template.xml
similarity index 100%
rename from test-files/golden-tests/metadata/var-template.xml
rename to test-files/golden-tests/symbols/variable/var-template.xml
diff --git a/test-files/golden-tests/templates/c_mft_expl_inline.adoc b/test-files/golden-tests/templates/c_mft_expl_inline.adoc
index 7ef015085..f9db18ba7 100644
--- a/test-files/golden-tests/templates/c_mft_expl_inline.adoc
+++ b/test-files/golden-tests/templates/c_mft_expl_inline.adoc
@@ -30,11 +30,13 @@ struct A;
 
 === Member Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <> 
+| 
+
 |===
 
 
@@ -43,11 +45,13 @@ struct A;
 == <>::f
 
 
-=== Synopsis
+=== Synopses
 
 
 Declared in `<c_mft_expl_inline.cpp>`
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<typename T>
@@ -57,6 +61,8 @@ void
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<>
diff --git a/test-files/golden-tests/templates/c_mft_expl_inline.html b/test-files/golden-tests/templates/c_mft_expl_inline.html
index 51e1da398..178dcba6d 100644
--- a/test-files/golden-tests/templates/c_mft_expl_inline.html
+++ b/test-files/golden-tests/templates/c_mft_expl_inline.html
@@ -40,12 +40,13 @@ 

Member Functions

- + - +
NameNameDescription
f
f +
@@ -56,9 +57,11 @@

Member Functions

A::f

-

Synopsis

+

Synopses

Declared in <c_mft_expl_inline.cpp>
+ +
 
 template<typename T>
@@ -67,6 +70,8 @@ 

Synopsis

» more... + +
 
 template<>
diff --git a/test-files/golden-tests/templates/c_mft_expl_outside.adoc b/test-files/golden-tests/templates/c_mft_expl_outside.adoc
index c7c3f81a4..6ed98d1c3 100644
--- a/test-files/golden-tests/templates/c_mft_expl_outside.adoc
+++ b/test-files/golden-tests/templates/c_mft_expl_outside.adoc
@@ -30,11 +30,13 @@ struct A;
 
 === Member Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <> 
+| 
+
 |===
 
 
@@ -43,11 +45,13 @@ struct A;
 == <>::f
 
 
-=== Synopsis
+=== Synopses
 
 
 Declared in `<c_mft_expl_outside.cpp>`
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<typename T>
@@ -57,6 +61,8 @@ void
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<>
diff --git a/test-files/golden-tests/templates/c_mft_expl_outside.html b/test-files/golden-tests/templates/c_mft_expl_outside.html
index 6c628bb66..cfee7343b 100644
--- a/test-files/golden-tests/templates/c_mft_expl_outside.html
+++ b/test-files/golden-tests/templates/c_mft_expl_outside.html
@@ -40,12 +40,13 @@ 

Member Functions

- + - +
NameNameDescription
f
f +
@@ -56,9 +57,11 @@

Member Functions

A::f

-

Synopsis

+

Synopses

Declared in <c_mft_expl_outside.cpp>
+ +
 
 template<typename T>
@@ -67,6 +70,8 @@ 

Synopsis

» more... + +
 
 template<>
diff --git a/test-files/golden-tests/templates/ct_mft_expl_inline.adoc b/test-files/golden-tests/templates/ct_mft_expl_inline.adoc
index 92fec1de2..c50f52c4a 100644
--- a/test-files/golden-tests/templates/ct_mft_expl_inline.adoc
+++ b/test-files/golden-tests/templates/ct_mft_expl_inline.adoc
@@ -31,11 +31,13 @@ struct A;
 
 === Member Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <> 
+| 
+
 |===
 
 
@@ -44,11 +46,13 @@ struct A;
 == <>::f
 
 
-=== Synopsis
+=== Synopses
 
 
 Declared in `<ct_mft_expl_inline.cpp>`
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<typename U>
@@ -58,6 +62,8 @@ void
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<>
diff --git a/test-files/golden-tests/templates/ct_mft_expl_inline.html b/test-files/golden-tests/templates/ct_mft_expl_inline.html
index 8b13637cf..b90f8b819 100644
--- a/test-files/golden-tests/templates/ct_mft_expl_inline.html
+++ b/test-files/golden-tests/templates/ct_mft_expl_inline.html
@@ -41,12 +41,13 @@ 

Member Functions

- + - +
NameNameDescription
f
f +
@@ -57,9 +58,11 @@

Member Functions

A::f

-

Synopsis

+

Synopses

Declared in <ct_mft_expl_inline.cpp>
+ +
 
 template<typename U>
@@ -68,6 +71,8 @@ 

Synopsis

» more... + +
 
 template<>
diff --git a/test-files/golden-tests/templates/ct_mft_expl_outside.adoc b/test-files/golden-tests/templates/ct_mft_expl_outside.adoc
index cc3f2fce5..56a0a0563 100644
--- a/test-files/golden-tests/templates/ct_mft_expl_outside.adoc
+++ b/test-files/golden-tests/templates/ct_mft_expl_outside.adoc
@@ -74,11 +74,13 @@ struct <><int>;
 
 === Member Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <> 
+| 
+
 |===
 
 
@@ -87,11 +89,13 @@ struct <><int>;
 == <><int>::f
 
 
-=== Synopsis
+=== Synopses
 
 
 Declared in `<ct_mft_expl_outside.cpp>`
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<typename U>
@@ -101,6 +105,8 @@ void
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<>
diff --git a/test-files/golden-tests/templates/ct_mft_expl_outside.html b/test-files/golden-tests/templates/ct_mft_expl_outside.html
index 908c6d8d4..a6a1e1da5 100644
--- a/test-files/golden-tests/templates/ct_mft_expl_outside.html
+++ b/test-files/golden-tests/templates/ct_mft_expl_outside.html
@@ -89,12 +89,13 @@ 

Member Functions

- + - +
NameNameDescription
f
f +
@@ -105,9 +106,11 @@

Member Functions

A<int>::f

-

Synopsis

+

Synopses

Declared in <ct_mft_expl_outside.cpp>
+ +
 
 template<typename U>
@@ -116,6 +119,8 @@ 

Synopsis

» more... + +
 
 template<>
diff --git a/test-files/golden-tests/templates/ft_expl.adoc b/test-files/golden-tests/templates/ft_expl.adoc
index f9e5714bd..d8b6feb95 100644
--- a/test-files/golden-tests/templates/ft_expl.adoc
+++ b/test-files/golden-tests/templates/ft_expl.adoc
@@ -7,22 +7,26 @@
 
 === Functions
 
-[cols=1]
+[cols=2]
 |===
-| Name 
+| Name | Description 
 
 | <> 
+| 
+
 |===
 
 [#f-0e]
 == f
 
 
-=== Synopsis
+=== Synopses
 
 
 Declared in `<ft_expl.cpp>`
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<typename T>
@@ -32,6 +36,8 @@ void
 
 [.small]#<>#
 
+
+
 [source,cpp,subs="verbatim,replacements,macros,-callouts"]
 ----
 template<>
diff --git a/test-files/golden-tests/templates/ft_expl.html b/test-files/golden-tests/templates/ft_expl.html
index 3c283cf2d..5c0d60d93 100644
--- a/test-files/golden-tests/templates/ft_expl.html
+++ b/test-files/golden-tests/templates/ft_expl.html
@@ -13,12 +13,13 @@ 

Functions

- + - +
NameNameDescription
f
f +
@@ -27,9 +28,11 @@

Functions

f

-

Synopsis

+

Synopses

Declared in <ft_expl.cpp>
+ +
 
 template<typename T>
@@ -38,6 +41,8 @@ 

Synopsis

» more... + +
 
 template<>