From 80945061aa8e0b46bd74ba9a686491f13132f1e6 Mon Sep 17 00:00:00 2001 From: Gennaro Prota Date: Wed, 13 May 2026 11:05:33 +0200 Subject: [PATCH] feat: move template specializations and deduction guides off parent scope page Class template specializations, function template specializations, and deduction guides used to share the enclosing scope's listing with their primary template. Users have repeatedly reported this as confusing: `vector` and `vector` appearing side by side in the namespace index reads as if they were independent siblings, and a primary's variants were nowhere on its own page. Specializations now appear in a dedicated "Specializations" section on the primary's documentation page, and deduction guides in a "Deduction Guides" section on the deduced class's page. The parent scope's listing carries only the primary itself. An orphan specialization (one whose primary has been excluded from extraction) stays in the parent's listing so the index can still reach it. The relationship is stored in the corpus: each primary record or function template carries the IDs of its specializations (and, for class templates, of its deduction guides), and each specialization carries an `IsSpecialization` flag. The lists are populated by a finalizer pass and exposed via reflection, so the XML output gains matching ``, ``, and `` elements and the DOM/Handlebars layer renders the new sections through plain field access. Closes issue #1154. --- include/mrdocs/Metadata/Symbol/Function.hpp | 34 +- include/mrdocs/Metadata/Symbol/Record.hpp | 41 +- mrdocs.rnc | 9 +- .../generator/adoc/partials/symbol.adoc.hbs | 10 + .../common/partials/symbol/tranche.hbs | 17 +- .../generator/html/partials/symbol.html.hbs | 12 + src/lib/CorpusImpl.cpp | 9 + src/lib/CorpusImpl.hpp | 1 + .../Finalizers/SpecializationFinalizer.cpp | 171 ++++++++ .../Finalizers/SpecializationFinalizer.hpp | 68 ++++ src/lib/Support/Handlebars.cpp | 55 +++ .../extract-friends/extract-friends.adoc | 10 +- .../extract-friends/extract-friends.html | 19 +- .../extract-friends/extract-friends.xml | 2 + .../extract-friends/no-extract-friends.adoc | 10 +- .../extract-friends/no-extract-friends.html | 19 +- .../extract-friends/no-extract-friends.xml | 2 + .../sort-namespace-members-by-location.adoc | 33 +- .../sort-namespace-members-by-location.html | 54 ++- .../sort-namespace-members-by-location.xml | 10 + .../sort-namespace-members-by-name.adoc | 33 +- .../sort-namespace-members-by-name.html | 54 ++- .../sort-namespace-members-by-name.xml | 10 + .../config/sort/sort-members.adoc | 33 +- .../config/sort/sort-members.html | 54 ++- .../golden-tests/config/sort/sort-members.xml | 10 + .../golden-tests/config/sort/unordered.adoc | 33 +- .../golden-tests/config/sort/unordered.html | 54 ++- .../golden-tests/config/sort/unordered.xml | 10 + .../symbol-type/nested-private-template.adoc | 10 +- .../symbol-type/nested-private-template.html | 19 +- .../symbol-type/nested-private-template.xml | 2 + .../javadoc/copydoc/template-arguments.adoc | 32 +- .../javadoc/copydoc/template-arguments.html | 38 +- .../javadoc/copydoc/template-arguments.xml | 8 + .../golden-tests/symbols/function/sfinae.adoc | 24 +- .../golden-tests/symbols/function/sfinae.html | 36 +- .../golden-tests/symbols/function/sfinae.xml | 4 + .../spec-mem-implicit-instantiation.adoc | 46 ++- .../spec-mem-implicit-instantiation.html | 78 +++- .../spec-mem-implicit-instantiation.xml | 14 + .../symbols/guide/explicit-deduct-guide.adoc | 23 +- .../symbols/guide/explicit-deduct-guide.html | 36 +- .../symbols/guide/explicit-deduct-guide.xml | 4 + .../record/class-template-array-spec.adoc | 11 +- .../record/class-template-array-spec.html | 19 +- .../record/class-template-array-spec.xml | 2 + .../record/class-template-partial-spec.adoc | 12 +- .../record/class-template-partial-spec.html | 21 +- .../record/class-template-partial-spec.xml | 4 + .../symbols/record/class-template-spec.adoc | 36 +- .../symbols/record/class-template-spec.html | 59 ++- .../symbols/record/class-template-spec.xml | 12 + .../class-template-specializations-1.adoc | 224 ++++++----- .../class-template-specializations-1.html | 352 ++++++++++------- .../class-template-specializations-1.xml | 364 ++++++++++++++++++ .../class-template-specializations-2.adoc | 64 ++- .../class-template-specializations-2.html | 113 +++++- .../class-template-specializations-2.xml | 24 ++ .../class-template-specializations-3.adoc | 100 +++-- .../class-template-specializations-3.html | 179 +++++++-- .../class-template-specializations-3.xml | 44 +++ .../template-specialization-inheritance.adoc | 16 +- .../template-specialization-inheritance.html | 23 +- .../template-specialization-inheritance.xml | 8 + .../symbols/typedef/decay-to-primary.adoc | 12 +- .../symbols/typedef/decay-to-primary.html | 19 +- .../symbols/typedef/decay-to-primary.xml | 4 + .../implicit-instantiation-member-ref.adoc | 20 +- .../implicit-instantiation-member-ref.html | 36 +- .../implicit-instantiation-member-ref.xml | 4 + .../using/using-alias-template-dependent.adoc | 10 +- .../using/using-alias-template-dependent.html | 17 +- .../using/using-alias-template-dependent.xml | 2 + .../templates/c_mct_expl_inline.adoc | 10 +- .../templates/c_mct_expl_inline.html | 19 +- .../templates/c_mct_expl_inline.xml | 2 + .../templates/c_mct_expl_outside.adoc | 10 +- .../templates/c_mct_expl_outside.html | 19 +- .../templates/c_mct_expl_outside.xml | 2 + .../templates/c_mft_expl_inline.adoc | 9 + .../templates/c_mft_expl_inline.html | 16 + .../templates/c_mft_expl_inline.xml | 2 + .../templates/c_mft_expl_outside.adoc | 9 + .../templates/c_mft_expl_outside.html | 16 + .../templates/c_mft_expl_outside.xml | 2 + .../golden-tests/templates/ct_expl.adoc | 10 +- .../golden-tests/templates/ct_expl.html | 19 +- test-files/golden-tests/templates/ct_expl.xml | 2 + .../templates/ct_mc_expl_outside.adoc | 10 +- .../templates/ct_mc_expl_outside.html | 19 +- .../templates/ct_mc_expl_outside.xml | 2 + .../templates/ct_mct_expl_inline.adoc | 10 +- .../templates/ct_mct_expl_inline.html | 19 +- .../templates/ct_mct_expl_inline.xml | 2 + .../templates/ct_mct_expl_outside.adoc | 20 +- .../templates/ct_mct_expl_outside.html | 38 +- .../templates/ct_mct_expl_outside.xml | 4 + .../templates/ct_mf_expl_outside.adoc | 10 +- .../templates/ct_mf_expl_outside.html | 19 +- .../templates/ct_mf_expl_outside.xml | 2 + .../templates/ct_mft_expl_inline.adoc | 9 + .../templates/ct_mft_expl_inline.html | 16 + .../templates/ct_mft_expl_inline.xml | 2 + .../templates/ct_mft_expl_outside.adoc | 19 +- .../templates/ct_mft_expl_outside.html | 35 +- .../templates/ct_mft_expl_outside.xml | 4 + .../golden-tests/templates/ft_expl.adoc | 9 + .../golden-tests/templates/ft_expl.html | 16 + test-files/golden-tests/templates/ft_expl.xml | 2 + 110 files changed, 2984 insertions(+), 492 deletions(-) create mode 100644 src/lib/Metadata/Finalizers/SpecializationFinalizer.cpp create mode 100644 src/lib/Metadata/Finalizers/SpecializationFinalizer.hpp diff --git a/include/mrdocs/Metadata/Symbol/Function.hpp b/include/mrdocs/Metadata/Symbol/Function.hpp index b3786a9f5c..1a2adbab11 100644 --- a/include/mrdocs/Metadata/Symbol/Function.hpp +++ b/include/mrdocs/Metadata/Symbol/Function.hpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -137,6 +138,36 @@ struct FunctionSymbol final */ Optional FunctionObjectImpl; + /** Whether this function is listed on its primary's page. + + A presentation-layer flag set by `SpecializationFinalizer` + when *both* conditions hold: + + 1. This function is a template specialization (AST-local, + equivalent to `Template->specializationKind() != Primary`). + 2. Its primary is being extracted in + @ref ExtractionMode::Regular (cross-symbol, needs the + corpus). + + When set, the function is rendered in its primary's + "Specializations" section and suppressed from the parent + scope's listing. Orphan specializations (primary excluded + from extraction) fail condition 2 and keep the flag `false`, + so they remain reachable from the parent scope. The name + deliberately encodes the resulting placement rather than + the AST property in 1, which `Template` already exposes. + */ + bool IsListedOnPrimary = false; + + /** Specializations whose primary is this function. + + Populated by `SpecializationFinalizer` with the IDs of + function-template specializations referring to this + function as their primary. Sorted by referent name + then ID. + */ + std::vector Specializations; + //-------------------------------------------- /** Construct a function symbol with its ID. @@ -161,7 +192,8 @@ MRDOCS_DESCRIBE_STRUCT( IsNodiscard, IsExplicitObjectMemberFunction, Constexpr, OverloadedOperator, StorageClass, IsRecordMethod, IsVirtual, IsVirtualAsWritten, IsPure, IsConst, IsVolatile, IsFinal, - RefQualifier, Explicit, Attributes, FunctionObjectImpl) + RefQualifier, Explicit, Attributes, FunctionObjectImpl, + IsListedOnPrimary, Specializations) ) /** Map a vector of parameters to a @ref dom::Value object. diff --git a/include/mrdocs/Metadata/Symbol/Record.hpp b/include/mrdocs/Metadata/Symbol/Record.hpp index c173fd7407..598444cefa 100644 --- a/include/mrdocs/Metadata/Symbol/Record.hpp +++ b/include/mrdocs/Metadata/Symbol/Record.hpp @@ -5,6 +5,7 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // // Copyright (c) 2023 Vinnie Falco (vinnie.falco@gmail.com) +// Copyright (c) 2026 Gennaro Prota (gennaro.prota@gmail.com) // // Official repository: https://github.com/cppalliance/mrdocs // @@ -74,6 +75,43 @@ struct RecordSymbol final */ std::vector Friends; + /** Whether this record is listed on its primary's page. + + A presentation-layer flag set by `SpecializationFinalizer` + when *both* conditions hold: + + 1. This record is a template specialization (AST-local, + equivalent to `Template->specializationKind() != Primary`). + 2. Its primary is being extracted in + @ref ExtractionMode::Regular (cross-symbol, needs the + corpus). + + When set, the record is rendered in its primary's + "Specializations" section and suppressed from the parent + scope's listing. Orphan specializations (primary excluded + from extraction) fail condition 2 and keep the flag `false`, + so they remain reachable from the parent scope. The name + deliberately encodes the resulting placement rather than + the AST property in 1, which `Template` already exposes. + */ + bool IsListedOnPrimary = false; + + /** Specializations whose primary is this record. + + Populated by `SpecializationFinalizer` with the IDs of + class-template specializations referring to this record + as their primary. Sorted by referent name then ID. + */ + std::vector Specializations; + + /** Deduction guides associated with this class template. + + Populated by `SpecializationFinalizer` with the IDs of + deduction guides that deduce this record. Sorted by + referent name then ID. + */ + std::vector DeductionGuides; + //-------------------------------------------- /** Create a record symbol bound to an ID. @@ -93,7 +131,8 @@ MRDOCS_DESCRIBE_STRUCT( RecordSymbol, (SymbolCommonBase), (KeyKind, Template, IsTypeDef, IsFinal, IsFinalDestructor, - Bases, Derived, Interface, Friends) + Bases, Derived, Interface, Friends, + IsListedOnPrimary, Specializations, DeductionGuides) ) /** Return the default accessibility for a record key kind. diff --git a/mrdocs.rnc b/mrdocs.rnc index 776acb447b..cd1f9e08c3 100644 --- a/mrdocs.rnc +++ b/mrdocs.rnc @@ -370,7 +370,10 @@ grammar BaseInfo*, element derived { SymbolID }*, RecordInterface?, - FriendInfo* + FriendInfo*, + element is-listed-on-primary { Bool }?, + element specializations { SymbolID }*, + element deduction-guides { SymbolID }* } BaseInfo = @@ -445,7 +448,9 @@ grammar element ref-qualifier { text }?, element explicit { text }?, element attributes { text }*, - element function-object-impl { SymbolID }? + element function-object-impl { SymbolID }?, + element is-listed-on-primary { Bool }?, + element specializations { SymbolID }* } #--------------------------------------------- diff --git a/share/mrdocs/addons/generator/adoc/partials/symbol.adoc.hbs b/share/mrdocs/addons/generator/adoc/partials/symbol.adoc.hbs index 1f3290f23f..cc97cfe403 100644 --- a/share/mrdocs/addons/generator/adoc/partials/symbol.adoc.hbs +++ b/share/mrdocs/addons/generator/adoc/partials/symbol.adoc.hbs @@ -145,6 +145,16 @@ {{/each}} |=== +{{/if}} +{{! Specializations of this primary template }} +{{#if symbol.specializations}} +{{>symbol/members-table members=symbol.specializations title="Specializations"}} + +{{/if}} +{{! Deduction guides for this class template }} +{{#if symbol.deductionGuides}} +{{>symbol/members-table members=symbol.deductionGuides title="Deduction Guides"}} + {{/if}} {{! Using symbols }} {{#if symbol.shadowDeclarations}} diff --git a/share/mrdocs/addons/generator/common/partials/symbol/tranche.hbs b/share/mrdocs/addons/generator/common/partials/symbol/tranche.hbs index 7611761518..2ae5ca31a2 100644 --- a/share/mrdocs/addons/generator/common/partials/symbol/tranche.hbs +++ b/share/mrdocs/addons/generator/common/partials/symbol/tranche.hbs @@ -7,6 +7,10 @@ Each value in the tranche is a list of symbols that belong to the tranche. + Template specializations and deduction guides are filtered out: they are + listed instead on the primary template's own page, via the dedicated + "Specializations" / "Deduction Guides" sections. + Expected Context: {Tranche Object} Example: @@ -17,21 +21,20 @@ {{#if is-namespace}} {{>symbol/members-table members=tranche.namespaces title="Namespaces"}} {{>symbol/members-table members=tranche.namespaceAliases title="Namespace Aliases"}} -{{>symbol/members-table members=(concat tranche.records tranche.typedefs) title=(concat (select label (concat label " ") "") "Types")}} +{{>symbol/members-table members=(concat (reject_by tranche.records "isListedOnPrimary") tranche.typedefs) title=(concat (select label (concat label " ") "") "Types")}} {{>symbol/members-table members=tranche.enums title=(concat (select label (concat label " ") "") "Enums")}} -{{>symbol/members-table members=tranche.functions title="Functions"}} +{{>symbol/members-table members=(reject_by tranche.functions "isListedOnPrimary") title="Functions"}} {{>symbol/members-table members=tranche.variables title="Variables"}} {{>symbol/members-table members=tranche.concepts title="Concepts"}} -{{>symbol/members-table members=tranche.guides title=(concat (select label (concat label " ") "") "Deduction Guides")}} {{>symbol/members-table members=tranche.usings title=(concat (select label (concat label " ") "") "Using Declarations")}} {{else}} {{>symbol/members-table members=tranche.namespaceAliases title="Namespace Aliases"}} -{{>symbol/members-table members=(concat tranche.records tranche.typedefs) title=(concat (select label (concat label " ") "") "Types")}} +{{>symbol/members-table members=(concat (reject_by tranche.records "isListedOnPrimary") tranche.typedefs) title=(concat (select label (concat label " ") "") "Types")}} {{>symbol/members-table members=tranche.enums title=(concat (select label (concat label " ") "") "Enums")}} -{{>symbol/members-table members=tranche.functions title=(concat (select label (concat label " ") "") "Member Functions")}} -{{>symbol/members-table members=tranche.staticFunctions title=(concat (select label (concat label " ") "") "Static Member Functions")}} +{{>symbol/members-table members=(reject_by tranche.functions "isListedOnPrimary") title=(concat (select label (concat label " ") "") "Member Functions")}} +{{>symbol/members-table members=(reject_by tranche.staticFunctions "isListedOnPrimary") title=(concat (select label (concat label " ") "") "Static Member Functions")}} {{>symbol/members-table members=tranche.variables title=(concat (select label (concat label " ") "") "Data Members")}} {{>symbol/members-table members=tranche.staticVariables title=(concat (select label (concat label " ") "") "Static Data Members")}} {{>symbol/members-table members=tranche.aliases title=(concat (select label (concat label " ") "") "Aliases")}} {{>symbol/members-table members=tranche.usings title=(concat (select label (concat label " ") "") "Using Declarations")}} -{{/if}} \ No newline at end of file +{{/if}} diff --git a/share/mrdocs/addons/generator/html/partials/symbol.html.hbs b/share/mrdocs/addons/generator/html/partials/symbol.html.hbs index acab90eb12..d821439979 100644 --- a/share/mrdocs/addons/generator/html/partials/symbol.html.hbs +++ b/share/mrdocs/addons/generator/html/partials/symbol.html.hbs @@ -192,6 +192,18 @@ {{/if}} +{{! Specializations of this primary template }} +{{#if symbol.specializations}} +
+{{>symbol/members-table members=symbol.specializations title="Specializations"}} +
+{{/if}} +{{! Deduction guides for this class template }} +{{#if symbol.deductionGuides}} +
+{{>symbol/members-table members=symbol.deductionGuides title="Deduction Guides"}} +
+{{/if}} {{! Using symbols }} {{#if symbol.shadowDeclarations}}
diff --git a/src/lib/CorpusImpl.cpp b/src/lib/CorpusImpl.cpp index 559362e8cb..ea0cbbe483 100644 --- a/src/lib/CorpusImpl.cpp +++ b/src/lib/CorpusImpl.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -1078,6 +1079,14 @@ CorpusImpl::finalize() finalizer.build(); } + // Populate primary -> specialization back-pointers + // and the deduction-guide lists on deduced records. + { + report::debug(" - Finalizing specializations"); + SpecializationFinalizer finalizer(*this); + finalizer.build(); + } + // Sort members: this runs unconditionally because // the members of some symbol types are always sorted. { diff --git a/src/lib/CorpusImpl.hpp b/src/lib/CorpusImpl.hpp index d6076349b2..07ee32ba10 100644 --- a/src/lib/CorpusImpl.hpp +++ b/src/lib/CorpusImpl.hpp @@ -64,6 +64,7 @@ class CorpusImpl final : public Corpus friend class NamespacesFinalizer; friend class DerivedFinalizer; friend class FunctionObjectFinalizer; + friend class SpecializationFinalizer; public: /** Constructor. diff --git a/src/lib/Metadata/Finalizers/SpecializationFinalizer.cpp b/src/lib/Metadata/Finalizers/SpecializationFinalizer.cpp new file mode 100644 index 0000000000..89b7478b02 --- /dev/null +++ b/src/lib/Metadata/Finalizers/SpecializationFinalizer.cpp @@ -0,0 +1,171 @@ +// +// Licensed under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +// Copyright (c) 2026 Gennaro Prota (gennaro.prota@gmail.com) +// +// Official repository: https://github.com/cppalliance/mrdocs +// + +#include "SpecializationFinalizer.hpp" +#include +#include +#include + +namespace mrdocs { + +namespace { + +// Return the `SymbolID` of the primary class template that a +// deduction guide deduces, or `SymbolID::invalid` when it +// cannot be determined. +SymbolID +deducedPrimaryID(GuideSymbol const& guide) +{ + if (guide.Deduced.valueless_after_move() + || !guide.Deduced->isNamed()) + { + return SymbolID::invalid; + } + NamedType const& namedType = guide.Deduced->asNamed(); + if (namedType.Name.valueless_after_move()) + { + return SymbolID::invalid; + } + return namedType.Name->id; +} + +} // (unnamed) + +void +SpecializationFinalizer:: +processRecord(RecordSymbol const& I) +{ + if (!I.Template + || I.Template->specializationKind() == TemplateSpecKind::Primary) + { + return; + } + Symbol* primary = corpus_.find(I.Template->Primary); + if (!primary + || primary->Extraction != ExtractionMode::Regular + || !primary->isRecord()) + { + return; + } + primary->asRecordPtr()->Specializations.push_back(I.id); + Symbol* self = corpus_.find(I.id); + MRDOCS_ASSERT(self && self->isRecord()); + self->asRecordPtr()->IsListedOnPrimary = true; +} + +void +SpecializationFinalizer:: +processFunction(FunctionSymbol const& I) +{ + if (!I.Template + || I.Template->specializationKind() == TemplateSpecKind::Primary) + { + return; + } + Symbol* primary = corpus_.find(I.Template->Primary); + if (!primary + || primary->Extraction != ExtractionMode::Regular + || !primary->isFunction()) + { + return; + } + primary->asFunctionPtr()->Specializations.push_back(I.id); + Symbol* self = corpus_.find(I.id); + MRDOCS_ASSERT(self && self->isFunction()); + self->asFunctionPtr()->IsListedOnPrimary = true; +} + +void +SpecializationFinalizer:: +processGuide(GuideSymbol const& I) +{ + SymbolID const deducedId = deducedPrimaryID(I); + if (!deducedId) + { + return; + } + Symbol* deduced = corpus_.find(deducedId); + if (!deduced + || deduced->Extraction != ExtractionMode::Regular + || !deduced->isRecord()) + { + return; + } + deduced->asRecordPtr()->DeductionGuides.push_back(I.id); +} + +void +SpecializationFinalizer:: +sortBackPointers() +{ + auto byReferentName = [this](SymbolID const& lhs, SymbolID const& rhs) + { + Symbol const* lhsInfo = corpus_.find(lhs); + Symbol const* rhsInfo = corpus_.find(rhs); + if (!lhsInfo || !rhsInfo) + { + return lhs < rhs; + } + if (lhsInfo->Name != rhsInfo->Name) + { + return lhsInfo->Name < rhsInfo->Name; + } + return lhs < rhs; + }; + for (Symbol const& I : corpus_) + { + if (I.isRecord()) + { + RecordSymbol const& R = I.asRecord(); + if (!R.Specializations.empty() || !R.DeductionGuides.empty()) + { + RecordSymbol* mut = corpus_.find(I.id)->asRecordPtr(); + std::ranges::sort(mut->Specializations, byReferentName); + std::ranges::sort(mut->DeductionGuides, byReferentName); + } + } + else if (I.isFunction()) + { + FunctionSymbol const& F = I.asFunction(); + if (!F.Specializations.empty()) + { + FunctionSymbol* mut = corpus_.find(I.id)->asFunctionPtr(); + std::ranges::sort(mut->Specializations, byReferentName); + } + } + } +} + +void +SpecializationFinalizer:: +build() +{ + for (Symbol const& I : corpus_) + { + if (I.Extraction == ExtractionMode::Regular) + { + if (I.isRecord()) + { + processRecord(I.asRecord()); + } + else if (I.isFunction()) + { + processFunction(I.asFunction()); + } + else if (I.isGuide()) + { + processGuide(I.asGuide()); + } + } + } + sortBackPointers(); +} + +} // mrdocs diff --git a/src/lib/Metadata/Finalizers/SpecializationFinalizer.hpp b/src/lib/Metadata/Finalizers/SpecializationFinalizer.hpp new file mode 100644 index 0000000000..a7638e0b4e --- /dev/null +++ b/src/lib/Metadata/Finalizers/SpecializationFinalizer.hpp @@ -0,0 +1,68 @@ +// +// Licensed under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +// Copyright (c) 2026 Gennaro Prota (gennaro.prota@gmail.com) +// +// Official repository: https://github.com/cppalliance/mrdocs +// + +#ifndef MRDOCS_LIB_METADATA_FINALIZERS_SPECIALIZATIONFINALIZER_HPP +#define MRDOCS_LIB_METADATA_FINALIZERS_SPECIALIZATIONFINALIZER_HPP + +#include + +namespace mrdocs { + +/** Populate the back-pointers from primaries to their specializations. + + For each class- or function-template specialization extracted + in @ref ExtractionMode::Regular whose primary is also `Regular`, + appends the specialization's ID to the primary's + `Specializations` list and sets the specialization's + `IsListedOnPrimary` flag. For each `Regular` deduction guide, + appends its ID to the deduced record's `DeductionGuides` + list. The populated lists are sorted by referent name then ID. + + Orphan specializations - those whose primary is not extracted + in `Regular` mode - keep `IsListedOnPrimary` `false` so they + remain reachable from the parent scope's listing. +*/ +class SpecializationFinalizer +{ + CorpusImpl& corpus_; + + void processRecord(RecordSymbol const& I); + void processFunction(FunctionSymbol const& I); + void processGuide(GuideSymbol const& I); + + void sortBackPointers(); + +public: + /** Construct the finalizer bound to a corpus. + + @param corpus The corpus whose specialization and deduction-guide + back-pointers will be populated by `build`. + */ + explicit + SpecializationFinalizer(CorpusImpl& corpus) noexcept + : corpus_(corpus) + { + } + + /** Populate the back-pointers and sort them. + + Walks the corpus once, appending each `Regular` specialization + to its primary's `Specializations` list (when the primary is + also regular) and each `Regular` deduction guide to its deduced + record's `DeductionGuides` list. Specializations whose primary + will be rendered also get their `IsListedOnPrimary` flag set. + Finally sorts every populated vector by referent name then ID. + */ + void build(); +}; + +} // mrdocs + +#endif // MRDOCS_LIB_METADATA_FINALIZERS_SPECIALIZATIONFINALIZER_HPP diff --git a/src/lib/Support/Handlebars.cpp b/src/lib/Support/Handlebars.cpp index 41ccb9bf72..c989a5ead5 100644 --- a/src/lib/Support/Handlebars.cpp +++ b/src/lib/Support/Handlebars.cpp @@ -4,6 +4,7 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // // Copyright (c) 2023 Alan de Freitas (alandefreitas@gmail.com) +// Copyright (c) 2026 Gennaro Prota (gennaro.prota@gmail.com) // // Official repository: https://github.com/cppalliance/mrdocs // @@ -6481,6 +6482,60 @@ registerContainerHelpers(Handlebars& hbs) hbs.registerHelper("filter_by", filter_by_fn); + static auto reject_by_fn = dom::makeVariadicInvocable([]( + dom::Array const& arguments) -> dom::Value + { + dom::Value container = arguments.at(0); + std::vector keys; + for (std::size_t i = 1; i < arguments.size() - 1; ++i) + { + dom::Value key = arguments.at(i); + keys.push_back(key); + } + + // Given an array of objects, reject (exclude) those whose + // value at any of the given keys is truthy. Inverse of + // `filter_by`: non-object elements are kept, since they + // have no keys to test. + if (container.isArray()) + { + dom::Array const& arr = container.getArray(); + + std::vector res; + std::size_t const n = arr.size(); + for (std::size_t i = 0; i < n; ++i) { + dom::Value el = arr.at(i); + + if (!el.isObject()) + { + res.emplace_back(el); + continue; + } + + auto const matchIt = std::ranges::find_if( + keys, + [&](dom::Value const& key) + { + return + el.getObject().exists(key.getString()) && + el.getObject().get(key.getString()).isTruthy(); + }); + if (matchIt != keys.end()) + { + continue; + } + + res.emplace_back(el); + } + return dom::Array(res); + } + + // If the value is not an array, then we can't reject from it + return container; + }); + + hbs.registerHelper("reject_by", reject_by_fn); + static auto any_of_by_fn = dom::makeVariadicInvocable([]( dom::Array const& arguments) -> dom::Value { diff --git a/test-files/golden-tests/config/extract-friends/extract-friends.adoc b/test-files/golden-tests/config/extract-friends/extract-friends.adoc index 8176f9d0dc..8ccee7af63 100644 --- a/test-files/golden-tests/config/extract-friends/extract-friends.adoc +++ b/test-files/golden-tests/config/extract-friends/extract-friends.adoc @@ -29,7 +29,6 @@ |=== | Name | link:#std-hash-03[`hash`] -| link:#std-hash-08[`hash<A>`] |=== [#std-hash-03] @@ -45,6 +44,15 @@ template<class T> class hash; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#std-hash-08[`hash<A>`] +|=== + + [#std-hash-08] == link:#std[std]::link:#std-hash-03[hash]<link:#A[A]> diff --git a/test-files/golden-tests/config/extract-friends/extract-friends.html b/test-files/golden-tests/config/extract-friends/extract-friends.html index 3d53e7cd99..6554dcc776 100644 --- a/test-files/golden-tests/config/extract-friends/extract-friends.html +++ b/test-files/golden-tests/config/extract-friends/extract-friends.html @@ -55,8 +55,7 @@

-hash -hash<A> +hash @@ -76,6 +75,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
hash<A>
+ +
diff --git a/test-files/golden-tests/config/extract-friends/extract-friends.xml b/test-files/golden-tests/config/extract-friends/extract-friends.xml index d10d24ae21..db3644351b 100644 --- a/test-files/golden-tests/config/extract-friends/extract-friends.xml +++ b/test-files/golden-tests/config/extract-friends/extract-friends.xml @@ -67,6 +67,7 @@ + jTCZUvygQOxo6L+VfFZcAI6KU0Y= hash @@ -105,6 +106,7 @@ + 1 operator() diff --git a/test-files/golden-tests/config/extract-friends/no-extract-friends.adoc b/test-files/golden-tests/config/extract-friends/no-extract-friends.adoc index 0b50695f0a..17510a1167 100644 --- a/test-files/golden-tests/config/extract-friends/no-extract-friends.adoc +++ b/test-files/golden-tests/config/extract-friends/no-extract-friends.adoc @@ -29,7 +29,6 @@ |=== | Name | link:#std-hash-03[`hash`] -| link:#std-hash-08[`hash<A>`] |=== [#std-hash-03] @@ -45,6 +44,15 @@ template<class T> class hash; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#std-hash-08[`hash<A>`] +|=== + + [#std-hash-08] == link:#std[std]::link:#std-hash-03[hash]<link:#A[A]> diff --git a/test-files/golden-tests/config/extract-friends/no-extract-friends.html b/test-files/golden-tests/config/extract-friends/no-extract-friends.html index 0d017217ca..2990afd818 100644 --- a/test-files/golden-tests/config/extract-friends/no-extract-friends.html +++ b/test-files/golden-tests/config/extract-friends/no-extract-friends.html @@ -55,8 +55,7 @@

-hash -hash<A> +hash @@ -76,6 +75,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
hash<A>
+ +
diff --git a/test-files/golden-tests/config/extract-friends/no-extract-friends.xml b/test-files/golden-tests/config/extract-friends/no-extract-friends.xml index d6632f40c4..783eb57cb9 100644 --- a/test-files/golden-tests/config/extract-friends/no-extract-friends.xml +++ b/test-files/golden-tests/config/extract-friends/no-extract-friends.xml @@ -67,6 +67,7 @@ + jTCZUvygQOxo6L+VfFZcAI6KU0Y= hash @@ -105,6 +106,7 @@ + 1 operator() diff --git a/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-location.adoc b/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-location.adoc index c88bd28d08..1c212a4b92 100644 --- a/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-location.adoc +++ b/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-location.adoc @@ -11,11 +11,7 @@ | Name | link:#D[`D`] | link:#C-0f[`C`] -| link:#C-0d[`C<int, char>`] -| link:#C-03[`C<int>`] | link:#B-0b[`B`] -| link:#B-04[`B<int, char>`] -| link:#B-05[`B<int, U>`] | link:#A[`A`] | link:#Z[`Z`] |=== @@ -66,6 +62,16 @@ template< struct C; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#C-03[`C<int>`] +| link:#C-0d[`C<int, char>`] +|=== + + [#C-0d] == link:#C-0f[C]<int, char> @@ -107,6 +113,16 @@ template< struct B; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#B-04[`B<int, char>`] +| link:#B-05[`B<int, U>`] +|=== + + [#B-04] == link:#B-0b[B]<int, char> @@ -525,6 +541,15 @@ g( T); ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#g-0e4[`g<int>`] +|=== + + [#g-0e4] == link:#g-03c[g]<int> diff --git a/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-location.html b/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-location.html index 0ea675a24c..179a035ea2 100644 --- a/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-location.html +++ b/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-location.html @@ -23,11 +23,7 @@

D C -C<int, char> -C<int> B -B<int, char> -B<int, U> A Z @@ -85,6 +81,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
C<int>
C<int, char>
+ +
@@ -135,6 +148,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
B<int, char>
B<int, U>
+ +
@@ -592,6 +622,22 @@

T, T, T); +

+
+

+Specializations

+ + + + + + + + + + +
Name
g<int>
+
diff --git a/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-location.xml b/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-location.xml index 81fc115fb9..b0404a3e72 100644 --- a/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-location.xml +++ b/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-location.xml @@ -93,6 +93,8 @@ + NLoLTepRVq6Wm8kqUGSEoM03TKg= + 1gG5jFtdo9Wauh4eNKJFnssDpFU= C @@ -138,6 +140,7 @@ + 1 C @@ -174,6 +177,7 @@ + 1 B @@ -210,6 +214,8 @@ + S+FvHbXPEwSCkNHoe9TC9L5a4Yk= + VwFE3CILPejPf11zTv20aat7w8Q= B @@ -255,6 +261,7 @@ + 1 B @@ -305,6 +312,7 @@ + 1 A @@ -1030,6 +1038,7 @@ normal + 5LjM4cXZ7IywLIZW1RtfpP7tNNk= g @@ -1088,6 +1097,7 @@ PEedgXj8uxMWKd/yZk6yqAz6boU= normal + 1 g diff --git a/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-name.adoc b/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-name.adoc index a5c37427ed..576529810e 100644 --- a/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-name.adoc +++ b/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-name.adoc @@ -11,11 +11,7 @@ | Name | link:#A[`A`] | link:#B-0b[`B`] -| link:#B-04[`B<int, char>`] -| link:#B-05[`B<int, U>`] | link:#C-0f[`C`] -| link:#C-03[`C<int>`] -| link:#C-0d[`C<int, char>`] | link:#D[`D`] | link:#Z[`Z`] |=== @@ -80,6 +76,16 @@ template< struct B; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#B-04[`B<int, char>`] +| link:#B-05[`B<int, U>`] +|=== + + [#B-04] == link:#B-0b[B]<int, char> @@ -121,6 +127,16 @@ template< struct C; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#C-03[`C<int>`] +| link:#C-0d[`C<int, char>`] +|=== + + [#C-03] == link:#C-0f[C]<int> @@ -595,6 +611,15 @@ g( T); ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#g-0e4[`g<int>`] +|=== + + [#g-0e4] == link:#g-03c[g]<int> diff --git a/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-name.html b/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-name.html index c73dd3066f..29fe242c29 100644 --- a/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-name.html +++ b/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-name.html @@ -23,11 +23,7 @@

A B -B<int, char> -B<int, U> C -C<int> -C<int, char> D Z @@ -102,6 +98,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
B<int, char>
B<int, U>
+ +
@@ -152,6 +165,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
C<int>
C<int, char>
+ +
@@ -667,6 +697,22 @@

T, T, T); +

+
+

+Specializations

+ + + + + + + + + + +
Name
g<int>
+
diff --git a/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-name.xml b/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-name.xml index 58f9b39153..c0dd3907b9 100644 --- a/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-name.xml +++ b/test-files/golden-tests/config/sort-namespace-members-by/sort-namespace-members-by-name.xml @@ -101,6 +101,8 @@ + S+FvHbXPEwSCkNHoe9TC9L5a4Yk= + VwFE3CILPejPf11zTv20aat7w8Q= B @@ -146,6 +148,7 @@ + 1 B @@ -196,6 +199,7 @@ + 1 C @@ -241,6 +245,8 @@ + NLoLTepRVq6Wm8kqUGSEoM03TKg= + 1gG5jFtdo9Wauh4eNKJFnssDpFU= C @@ -277,6 +283,7 @@ + 1 C @@ -322,6 +329,7 @@ + 1 D @@ -1202,6 +1210,7 @@ normal + 5LjM4cXZ7IywLIZW1RtfpP7tNNk= g @@ -1260,6 +1269,7 @@ PEedgXj8uxMWKd/yZk6yqAz6boU= normal + 1 h diff --git a/test-files/golden-tests/config/sort/sort-members.adoc b/test-files/golden-tests/config/sort/sort-members.adoc index 162873f655..b4ebe01f59 100644 --- a/test-files/golden-tests/config/sort/sort-members.adoc +++ b/test-files/golden-tests/config/sort/sort-members.adoc @@ -11,11 +11,7 @@ | Name | link:#A[`A`] | link:#B-0b[`B`] -| link:#B-04[`B<int, char>`] -| link:#B-05[`B<int, U>`] | link:#C-0f[`C`] -| link:#C-03[`C<int>`] -| link:#C-0d[`C<int, char>`] | link:#D[`D`] | link:#Z[`Z`] |=== @@ -80,6 +76,16 @@ template< struct B; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#B-04[`B<int, char>`] +| link:#B-05[`B<int, U>`] +|=== + + [#B-04] == link:#B-0b[B]<int, char> @@ -121,6 +127,16 @@ template< struct C; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#C-03[`C<int>`] +| link:#C-0d[`C<int, char>`] +|=== + + [#C-03] == link:#C-0f[C]<int> @@ -595,6 +611,15 @@ g( T); ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#g-0e4[`g<int>`] +|=== + + [#g-0e4] == link:#g-03c[g]<int> diff --git a/test-files/golden-tests/config/sort/sort-members.html b/test-files/golden-tests/config/sort/sort-members.html index b851359ade..794b7485c3 100644 --- a/test-files/golden-tests/config/sort/sort-members.html +++ b/test-files/golden-tests/config/sort/sort-members.html @@ -23,11 +23,7 @@

A B -B<int, char> -B<int, U> C -C<int> -C<int, char> D Z @@ -102,6 +98,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
B<int, char>
B<int, U>
+ +
@@ -152,6 +165,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
C<int>
C<int, char>
+ +
@@ -667,6 +697,22 @@

T, T, T); +

+
+

+Specializations

+ + + + + + + + + + +
Name
g<int>
+
diff --git a/test-files/golden-tests/config/sort/sort-members.xml b/test-files/golden-tests/config/sort/sort-members.xml index cffd20302d..3cf356479b 100644 --- a/test-files/golden-tests/config/sort/sort-members.xml +++ b/test-files/golden-tests/config/sort/sort-members.xml @@ -101,6 +101,8 @@ + S+FvHbXPEwSCkNHoe9TC9L5a4Yk= + VwFE3CILPejPf11zTv20aat7w8Q= B @@ -146,6 +148,7 @@ + 1 B @@ -196,6 +199,7 @@ + 1 C @@ -241,6 +245,8 @@ + NLoLTepRVq6Wm8kqUGSEoM03TKg= + 1gG5jFtdo9Wauh4eNKJFnssDpFU= C @@ -277,6 +283,7 @@ + 1 C @@ -322,6 +329,7 @@ + 1 D @@ -1202,6 +1210,7 @@ normal + 5LjM4cXZ7IywLIZW1RtfpP7tNNk= g @@ -1260,6 +1269,7 @@ PEedgXj8uxMWKd/yZk6yqAz6boU= normal + 1 h diff --git a/test-files/golden-tests/config/sort/unordered.adoc b/test-files/golden-tests/config/sort/unordered.adoc index ec08d339ac..da1275f267 100644 --- a/test-files/golden-tests/config/sort/unordered.adoc +++ b/test-files/golden-tests/config/sort/unordered.adoc @@ -11,11 +11,7 @@ | Name | link:#D[`D`] | link:#C-0f[`C`] -| link:#C-0d[`C<int, char>`] -| link:#C-03[`C<int>`] | link:#B-0b[`B`] -| link:#B-04[`B<int, char>`] -| link:#B-05[`B<int, U>`] | link:#A[`A`] | link:#Z[`Z`] |=== @@ -66,6 +62,16 @@ template< struct C; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#C-03[`C<int>`] +| link:#C-0d[`C<int, char>`] +|=== + + [#C-0d] == link:#C-0f[C]<int, char> @@ -107,6 +113,16 @@ template< struct B; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#B-04[`B<int, char>`] +| link:#B-05[`B<int, U>`] +|=== + + [#B-04] == link:#B-0b[B]<int, char> @@ -620,6 +636,15 @@ g( T); ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#g-0e4[`g<int>`] +|=== + + [#g-0e4] == link:#g-03c[g]<int> diff --git a/test-files/golden-tests/config/sort/unordered.html b/test-files/golden-tests/config/sort/unordered.html index 262308744c..c584babb0f 100644 --- a/test-files/golden-tests/config/sort/unordered.html +++ b/test-files/golden-tests/config/sort/unordered.html @@ -23,11 +23,7 @@

D C -C<int, char> -C<int> B -B<int, char> -B<int, U> A Z @@ -85,6 +81,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
C<int>
C<int, char>
+ +
@@ -135,6 +148,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
B<int, char>
B<int, U>
+ +
@@ -724,6 +754,22 @@

T, T, T); +

+
+

+Specializations

+ + + + + + + + + + +
Name
g<int>
+
diff --git a/test-files/golden-tests/config/sort/unordered.xml b/test-files/golden-tests/config/sort/unordered.xml index b14dd090e9..001086d391 100644 --- a/test-files/golden-tests/config/sort/unordered.xml +++ b/test-files/golden-tests/config/sort/unordered.xml @@ -93,6 +93,8 @@ + NLoLTepRVq6Wm8kqUGSEoM03TKg= + 1gG5jFtdo9Wauh4eNKJFnssDpFU= C @@ -138,6 +140,7 @@ + 1 C @@ -174,6 +177,7 @@ + 1 B @@ -210,6 +214,8 @@ + S+FvHbXPEwSCkNHoe9TC9L5a4Yk= + VwFE3CILPejPf11zTv20aat7w8Q= B @@ -255,6 +261,7 @@ + 1 B @@ -305,6 +312,7 @@ + 1 A @@ -1318,6 +1326,7 @@ normal + 5LjM4cXZ7IywLIZW1RtfpP7tNNk= g @@ -1376,6 +1385,7 @@ PEedgXj8uxMWKd/yZk6yqAz6boU= normal + 1 g diff --git a/test-files/golden-tests/filters/symbol-type/nested-private-template.adoc b/test-files/golden-tests/filters/symbol-type/nested-private-template.adoc index 563aac48d7..555b6779ac 100644 --- a/test-files/golden-tests/filters/symbol-type/nested-private-template.adoc +++ b/test-files/golden-tests/filters/symbol-type/nested-private-template.adoc @@ -31,7 +31,6 @@ class range; |=== | Name | link:#range-impl-0e[`impl`] -| link:#range-impl-00[`impl<R, false>`] |=== [#range-impl-0e] @@ -49,6 +48,15 @@ template< struct impl; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#range-impl-00[`impl<R, false>`] +|=== + + [#range-impl-00] == link:#range[range]::link:#range-impl-0e[impl]<R, false> diff --git a/test-files/golden-tests/filters/symbol-type/nested-private-template.html b/test-files/golden-tests/filters/symbol-type/nested-private-template.html index d60b83ee22..225880b0cf 100644 --- a/test-files/golden-tests/filters/symbol-type/nested-private-template.html +++ b/test-files/golden-tests/filters/symbol-type/nested-private-template.html @@ -51,8 +51,7 @@

-impl -impl<R, false> +impl @@ -74,6 +73,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
impl<R, false>
+ +
diff --git a/test-files/golden-tests/filters/symbol-type/nested-private-template.xml b/test-files/golden-tests/filters/symbol-type/nested-private-template.xml index c4da398361..d9a9bba964 100644 --- a/test-files/golden-tests/filters/symbol-type/nested-private-template.xml +++ b/test-files/golden-tests/filters/symbol-type/nested-private-template.xml @@ -83,6 +83,7 @@ + BCRU3eMBRSysyvFsjJj+0yg+Vfc= impl @@ -128,5 +129,6 @@ + 1 diff --git a/test-files/golden-tests/javadoc/copydoc/template-arguments.adoc b/test-files/golden-tests/javadoc/copydoc/template-arguments.adoc index afd606c725..ec71d0cd74 100644 --- a/test-files/golden-tests/javadoc/copydoc/template-arguments.adoc +++ b/test-files/golden-tests/javadoc/copydoc/template-arguments.adoc @@ -22,16 +22,8 @@ | Name| Description | link:#A-B-08[`B`] | Main class template for B. -| link:#A-B-09[`B<int>`] -| Specialization of B for int. -| link:#A-B-0c[`B<int, 2>`] -| Specialization of B for int with value 2. | link:#A-C-05[`C`] | Main class template for C. -| link:#A-C-0f[`C<D, true>`] -| Specialization of C for D with true. -| link:#A-C-0c[`C<int, true>`] -| Specialization of C for int with true. | link:#A-D[`D`] | Helper struct D. | link:#A-BInt[`BInt`] @@ -175,6 +167,18 @@ template< struct B; ---- +=== Specializations + +[cols="1,4"] +|=== +| Name| Description +| link:#A-B-09[`B<int>`] +| Specialization of B for int. +| link:#A-B-0c[`B<int, 2>`] +| Specialization of B for int with value 2. +|=== + + === Template Parameters [cols="1,4"] @@ -234,6 +238,18 @@ template< struct C; ---- +=== Specializations + +[cols="1,4"] +|=== +| Name| Description +| link:#A-C-0c[`C<int, true>`] +| Specialization of C for int with true. +| link:#A-C-0f[`C<D, true>`] +| Specialization of C for D with true. +|=== + + === Template Parameters [cols="1,4"] diff --git a/test-files/golden-tests/javadoc/copydoc/template-arguments.html b/test-files/golden-tests/javadoc/copydoc/template-arguments.html index 66476702e6..6ceaae2524 100644 --- a/test-files/golden-tests/javadoc/copydoc/template-arguments.html +++ b/test-files/golden-tests/javadoc/copydoc/template-arguments.html @@ -42,11 +42,7 @@

B Main class template for B. -B<int> Specialization of B for int. -B<int, 2> Specialization of B for int with value 2. C Main class template for C. -C<D, true> Specialization of C for D with true. -C<int, true> Specialization of C for int with true. D Helper struct D. BInt Specialization of B for int. BInt2 Specialization of B for int with value 2. @@ -216,6 +212,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
NameDescription
B<int> Specialization of B for int.
B<int, 2> Specialization of B for int with value 2.
+ +

Template Parameters

@@ -297,6 +310,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
NameDescription
C<int, true> Specialization of C for int with true.
C<D, true> Specialization of C for D with true.
+ +

Template Parameters

diff --git a/test-files/golden-tests/javadoc/copydoc/template-arguments.xml b/test-files/golden-tests/javadoc/copydoc/template-arguments.xml index 06b5f52acc..bf540ed784 100644 --- a/test-files/golden-tests/javadoc/copydoc/template-arguments.xml +++ b/test-files/golden-tests/javadoc/copydoc/template-arguments.xml @@ -364,6 +364,8 @@ + n2ekv7/9IraylJIibujZeExrML4= + zWh7HJU4uEOW6SQu1/X6/fBkFq0= B @@ -410,6 +412,7 @@ + 1 B @@ -460,6 +463,7 @@ + 1 C @@ -530,6 +534,8 @@ + w5ssdgUOfKNpDbPFUfSYesxFAc8= + +AYNfv3bBiQwa6z9A60U/F7dvXE= C @@ -581,6 +587,7 @@ + 1 C @@ -631,6 +638,7 @@ + 1 D diff --git a/test-files/golden-tests/symbols/function/sfinae.adoc b/test-files/golden-tests/symbols/function/sfinae.adoc index b99b0f67cd..fbe0a9a425 100644 --- a/test-files/golden-tests/symbols/function/sfinae.adoc +++ b/test-files/golden-tests/symbols/function/sfinae.adoc @@ -19,12 +19,8 @@ | Name| Description | link:#A-09[`A`] | The partial specialization of A is enabled via a template parameter -| link:#A-07[`A<T>`] -| Specialization for integral types | link:#S-02[`S`] | SFINAE with std::void_t -| link:#S-08[`S<T, std::void_t<T::a::b>>`] -| SFINAE with std::void_t |=== === Functions @@ -104,6 +100,16 @@ template< class A; ---- +=== Specializations + +[cols="1,4"] +|=== +| Name| Description +| link:#A-07[`A<T>`] +| Specialization for integral types +|=== + + [#A-07] == link:#A-09[A]<T> @@ -145,6 +151,16 @@ struct S; | link:#S-02-store[`store`] |=== +=== Specializations + +[cols="1,4"] +|=== +| Name| Description +| link:#S-08[`S<T, std::void_t<T::a::b>>`] +| SFINAE with std::void_t +|=== + + [#S-02-store] == link:#S-02[S]::store diff --git a/test-files/golden-tests/symbols/function/sfinae.html b/test-files/golden-tests/symbols/function/sfinae.html index ef5fc1c63c..dda4bdf5e3 100644 --- a/test-files/golden-tests/symbols/function/sfinae.html +++ b/test-files/golden-tests/symbols/function/sfinae.html @@ -36,9 +36,7 @@

A The partial specialization of A is enabled via a template parameter -A<T> Specialization for integral types -S SFINAE with std::void_t -S<T, std::void_t<T::a::b>> SFINAE with std::void_t +S SFINAE with std::void_t @@ -136,6 +134,22 @@

+
+

+Specializations

+ + + + + + + + + + +
NameDescription
A<T> Specialization for integral types
+ +
@@ -191,6 +205,22 @@

+
+

+Specializations

+ + + + + + + + + + +
NameDescription
S<T, std::void_t<T::a::b>> SFINAE with std::void_t
+ +

diff --git a/test-files/golden-tests/symbols/function/sfinae.xml b/test-files/golden-tests/symbols/function/sfinae.xml index cfb4b1a3c9..38f9264779 100644 --- a/test-files/golden-tests/symbols/function/sfinae.xml +++ b/test-files/golden-tests/symbols/function/sfinae.xml @@ -129,6 +129,7 @@ + f80OzcD5UlgQ2KOvUj+MvoJcAFE= A @@ -181,6 +182,7 @@ + 1 S @@ -237,6 +239,7 @@ + g0UNZpdodOU5mGCtcpviXd8o6Vk= store @@ -338,6 +341,7 @@ + 1 store diff --git a/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.adoc b/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.adoc index e5bf2b59b3..20d9edeac7 100644 --- a/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.adoc +++ b/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.adoc @@ -10,9 +10,6 @@ |=== | Name | link:#A-0e[`A`] -| link:#A-0f[`A<bool>`] -| link:#A-000[`A<int>`] -| link:#A-00b[`A<short>`] | link:#D[`D`] |=== @@ -46,6 +43,17 @@ struct A; | link:#A-0e-f[`f`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-000[`A<int>`] +| link:#A-00b[`A<short>`] +| link:#A-0f[`A<bool>`] +|=== + + [#A-0e-B] == link:#A-0e[A]::B @@ -67,6 +75,15 @@ struct B; | link:#A-0e-B-g[`g`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-000-B-09[`B<long>`] +|=== + + [#A-0e-B-g] == link:#A-0e[A]::link:#A-0e-B[B]::g @@ -101,6 +118,16 @@ struct C; | link:#A-0e-C-h[`h`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-0f-C-01[`C<double*>`] +| link:#A-0f-C-0c[`C<U*>`] +|=== + + [#A-0e-C-h] == link:#A-0e[A]::link:#A-0e-C[C]::h @@ -147,8 +174,6 @@ struct link:#A-0e[A]<bool>; | Name | link:#A-0f-B[`B`] | link:#A-0f-C-00[`C`] -| link:#A-0f-C-01[`C<double*>`] -| link:#A-0f-C-0c[`C<U*>`] |=== === Member Functions @@ -285,7 +310,6 @@ struct link:#A-0e[A]<int>; |=== | Name | link:#A-000-B-03[`B`] -| link:#A-000-B-09[`B<long>`] | link:#A-000-C[`C`] |=== @@ -478,7 +502,6 @@ struct D; |=== | Name | link:#D-E-0e[`E`] -| link:#D-E-0d[`E<int>`] |=== [#D-E-0e] @@ -502,6 +525,15 @@ struct E; | link:#D-E-0e-k[`k`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#D-E-0d[`E<int>`] +|=== + + [#D-E-0e-k] == link:#D[D]::link:#D-E-0e[E]::k diff --git a/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.html b/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.html index 113eab4aaf..a87f7f4acf 100644 --- a/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.html +++ b/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.html @@ -22,9 +22,6 @@

A -A<bool> -A<int> -A<short> D @@ -74,6 +71,24 @@

+
+

+Specializations

+ + + + + + + + + + + + +
Name
A<int>
A<short>
A<bool>
+ +

@@ -104,6 +119,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
B<long>
+ +

@@ -148,6 +179,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
C<double*>
C<U*>
+ +

@@ -201,9 +249,7 @@

B -C -C<double*> -C<U*> +C @@ -382,7 +428,6 @@

B -B<long> C @@ -635,8 +680,7 @@

-E -E<int> +E @@ -672,6 +716,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
E<int>
+ +

diff --git a/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.xml b/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.xml index 7d5ef71cf7..5ecedd2899 100644 --- a/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.xml +++ b/test-files/golden-tests/symbols/function/spec-mem-implicit-instantiation.xml @@ -48,6 +48,9 @@ + AKwlChAOi+0ttIAPsD7uitS+gk0= + C6fFmGgpPJ7jgwKJA98mfx5cxts= + /vjeowK9rbOfBZNuMjVMRn2iGMo= B @@ -80,6 +83,7 @@ + kLfkJ6zwS7/fgRzTYaPfbg3WHg8= g @@ -135,6 +139,8 @@ + EyperGIiZ7cSv/PB2BApKjPRQVA= + xYK8qpEgWzczUMGnNUx+ozeBle0= h @@ -222,6 +228,7 @@ + 1 B @@ -323,6 +330,7 @@ + 1 j @@ -396,6 +404,7 @@ + 1 j @@ -482,6 +491,7 @@ + 1 B @@ -550,6 +560,7 @@ + 1 g @@ -678,6 +689,7 @@ + 1 B @@ -851,6 +863,7 @@ + 27+9TQyh1Vcx+C3POBLdyXJP8bo= k @@ -911,6 +924,7 @@ + 1 k diff --git a/test-files/golden-tests/symbols/guide/explicit-deduct-guide.adoc b/test-files/golden-tests/symbols/guide/explicit-deduct-guide.adoc index 2551854f2e..3bb3d530dd 100644 --- a/test-files/golden-tests/symbols/guide/explicit-deduct-guide.adoc +++ b/test-files/golden-tests/symbols/guide/explicit-deduct-guide.adoc @@ -12,17 +12,6 @@ | link:#X-0e[`X`] |=== -=== Deduction Guides - -[cols=1] -|=== -| Name -| link:#X-0d[`X<0>`] -| link:#X-00[`X<0>`] -| link:#X-0b[`X<0>`] -| link:#X-06[`X<0>`] -|=== - [#X-0e] == X @@ -36,6 +25,18 @@ template<int> struct X; ---- +=== Deduction Guides + +[cols=1] +|=== +| Name +| link:#X-00[`X<0>`] +| link:#X-06[`X<0>`] +| link:#X-0b[`X<0>`] +| link:#X-0d[`X<0>`] +|=== + + [#X-0d] == link:#X-0e[X<0>] diff --git a/test-files/golden-tests/symbols/guide/explicit-deduct-guide.html b/test-files/golden-tests/symbols/guide/explicit-deduct-guide.html index 27a414b292..8655ee16b6 100644 --- a/test-files/golden-tests/symbols/guide/explicit-deduct-guide.html +++ b/test-files/golden-tests/symbols/guide/explicit-deduct-guide.html @@ -25,23 +25,6 @@

-

-Deduction Guides

- - - - - - - - - - - - - -
Name
X<0>
X<0>
X<0>
X<0>
-
@@ -58,6 +41,25 @@

+
+

+Deduction Guides

+ + + + + + + + + + + + + +
Name
X<0>
X<0>
X<0>
X<0>
+ +
diff --git a/test-files/golden-tests/symbols/guide/explicit-deduct-guide.xml b/test-files/golden-tests/symbols/guide/explicit-deduct-guide.xml index d314a0d2a3..a344780554 100644 --- a/test-files/golden-tests/symbols/guide/explicit-deduct-guide.xml +++ b/test-files/golden-tests/symbols/guide/explicit-deduct-guide.xml @@ -49,6 +49,10 @@ + AtQyLakD3CjcM24GabAbHMNgVU4= + YS/v8XQ/9ShQ2spNAh5EY33PN7s= + tkYkUU6H8cbFpCU7yBuvBLkT6dg= + 2IF4pOfGcA57GQDlE3PJgs7yeUs= X diff --git a/test-files/golden-tests/symbols/record/class-template-array-spec.adoc b/test-files/golden-tests/symbols/record/class-template-array-spec.adoc index 697e57f602..3fffc456a8 100644 --- a/test-files/golden-tests/symbols/record/class-template-array-spec.adoc +++ b/test-files/golden-tests/symbols/record/class-template-array-spec.adoc @@ -11,8 +11,6 @@ | Name| Description | link:#A-000[`A`] | Issue #1172. -| link:#A-004[`A<T[N], void, void>`] -| |=== [#A-000] @@ -33,6 +31,15 @@ template< struct A; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-004[`A<T[N], void, void>`] +|=== + + [#A-004] == link:#A-000[A]<T[N], void, void> diff --git a/test-files/golden-tests/symbols/record/class-template-array-spec.html b/test-files/golden-tests/symbols/record/class-template-array-spec.html index af68085518..33431669c4 100644 --- a/test-files/golden-tests/symbols/record/class-template-array-spec.html +++ b/test-files/golden-tests/symbols/record/class-template-array-spec.html @@ -21,8 +21,7 @@

-A Issue #1172. -A<T[N], void, void> +A Issue #1172. @@ -48,6 +47,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
A<T[N], void, void>
+ +
diff --git a/test-files/golden-tests/symbols/record/class-template-array-spec.xml b/test-files/golden-tests/symbols/record/class-template-array-spec.xml index b4cb8e2219..c7a5ef3dd3 100644 --- a/test-files/golden-tests/symbols/record/class-template-array-spec.xml +++ b/test-files/golden-tests/symbols/record/class-template-array-spec.xml @@ -86,6 +86,7 @@ + BImCLyzY3azoxv/pd8PtoMYhX4k= A @@ -158,5 +159,6 @@ + 1 diff --git a/test-files/golden-tests/symbols/record/class-template-partial-spec.adoc b/test-files/golden-tests/symbols/record/class-template-partial-spec.adoc index 46ad3249d9..5fc5072a47 100644 --- a/test-files/golden-tests/symbols/record/class-template-partial-spec.adoc +++ b/test-files/golden-tests/symbols/record/class-template-partial-spec.adoc @@ -31,8 +31,6 @@ struct A; |=== | Name | link:#A-B-0a[`B`] -| link:#A-B-04[`B<T, long>`] -| link:#A-B-06[`B<U*, T>`] |=== [#A-B-0a] @@ -50,6 +48,16 @@ template< struct B; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-B-04[`B<T, long>`] +| link:#A-B-06[`B<U*, T>`] +|=== + + [#A-B-04] == link:#A[A]::link:#A-B-0a[B]<T, long> diff --git a/test-files/golden-tests/symbols/record/class-template-partial-spec.html b/test-files/golden-tests/symbols/record/class-template-partial-spec.html index eeabaa412f..651b0f3663 100644 --- a/test-files/golden-tests/symbols/record/class-template-partial-spec.html +++ b/test-files/golden-tests/symbols/record/class-template-partial-spec.html @@ -49,9 +49,7 @@

-B -B<T, long> -B<U*, T> +B @@ -75,6 +73,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
B<T, long>
B<U*, T>
+ +
diff --git a/test-files/golden-tests/symbols/record/class-template-partial-spec.xml b/test-files/golden-tests/symbols/record/class-template-partial-spec.xml index 25414be979..92c331bbc1 100644 --- a/test-files/golden-tests/symbols/record/class-template-partial-spec.xml +++ b/test-files/golden-tests/symbols/record/class-template-partial-spec.xml @@ -80,6 +80,8 @@ + RB9DBMAJDxjxuRQCinQOVPFSNek= + Y/lm1lkT88vf1Ml123mbuN6Fp2Y= B @@ -125,6 +127,7 @@ + 1 B @@ -177,5 +180,6 @@ + 1 diff --git a/test-files/golden-tests/symbols/record/class-template-spec.adoc b/test-files/golden-tests/symbols/record/class-template-spec.adoc index 756f954d0e..ed47ebfb2b 100644 --- a/test-files/golden-tests/symbols/record/class-template-spec.adoc +++ b/test-files/golden-tests/symbols/record/class-template-spec.adoc @@ -10,14 +10,8 @@ |=== | Name | link:#A-0e[`A`] -| link:#A-00[`A<int>`] -| link:#A-0c[`A<long>`] | link:#B-00[`B`] -| link:#B-06[`B<T&>`] -| link:#B-07[`B<T*>`] | link:#C-0f[`C`] -| link:#C-0a[`C<int, int>`] -| link:#C-0e[`C<T*, int>`] |=== [#A-0e] @@ -41,6 +35,16 @@ struct A; | link:#A-0e-f[`f`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-00[`A<int>`] +| link:#A-0c[`A<long>`] +|=== + + [#A-0e-f] == link:#A-0e[A]::f @@ -143,6 +147,16 @@ struct B; | link:#B-00-f[`f`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#B-06[`B<T&>`] +| link:#B-07[`B<T*>`] +|=== + + [#B-00-f] == link:#B-00[B]::f @@ -247,6 +261,16 @@ struct C; | link:#C-0f-f[`f`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#C-0a[`C<int, int>`] +| link:#C-0e[`C<T*, int>`] +|=== + + [#C-0f-f] == link:#C-0f[C]::f diff --git a/test-files/golden-tests/symbols/record/class-template-spec.html b/test-files/golden-tests/symbols/record/class-template-spec.html index e7486c02e7..353090e9a4 100644 --- a/test-files/golden-tests/symbols/record/class-template-spec.html +++ b/test-files/golden-tests/symbols/record/class-template-spec.html @@ -22,14 +22,8 @@

A -A<int> -A<long> B -B<T&> -B<T*> -C -C<int, int> -C<T*, int> +C @@ -63,6 +57,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
A<int>
A<long>
+ +

@@ -195,6 +206,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
B<T&>
B<T*>
+ +

@@ -329,6 +357,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
C<int, int>
C<T*, int>
+ +

diff --git a/test-files/golden-tests/symbols/record/class-template-spec.xml b/test-files/golden-tests/symbols/record/class-template-spec.xml index 538adeb9e5..a86eb98d87 100644 --- a/test-files/golden-tests/symbols/record/class-template-spec.xml +++ b/test-files/golden-tests/symbols/record/class-template-spec.xml @@ -50,6 +50,8 @@ + AKwlChAOi+0ttIAPsD7uitS+gk0= + y/8TvVlacBAIG2ds2aYgZE+zGUU= f @@ -110,6 +112,7 @@ + 1 g @@ -170,6 +173,7 @@ + 1 h @@ -225,6 +229,8 @@ + ZjUaxeOoGJ0Jol9Nmn7cGRE7RCo= + dydGCFMdrM4nOwuv3RCXqg2KCUA= f @@ -292,6 +298,7 @@ + 1 h @@ -359,6 +366,7 @@ + 1 g @@ -419,6 +427,8 @@ + qrcrkE8Br83XKNMh95Dvwpph/M8= + 6zS87fCNnLtFfHbRWEmcdeAT1Zg= f @@ -488,6 +498,7 @@ + 1 g @@ -564,6 +575,7 @@ + 1 h diff --git a/test-files/golden-tests/symbols/record/class-template-specializations-1.adoc b/test-files/golden-tests/symbols/record/class-template-specializations-1.adoc index c25cc38a45..966e152928 100644 --- a/test-files/golden-tests/symbols/record/class-template-specializations-1.adoc +++ b/test-files/golden-tests/symbols/record/class-template-specializations-1.adoc @@ -59,47 +59,6 @@ | link:#R8[`R8`] | link:#R9[`R9`] | link:#S0-0cf[`S0`] -| link:#S0-0be[`S0<0>`] -| link:#S0-087[`S0<10>`] -| link:#S0-0e[`S0<12>`] -| link:#S0-09e4[`S0<15>`] -| link:#S0-07a[`S0<18>`] -| link:#S0-0a7[`S0<19>`] -| link:#S0-09c[`S0<2>`] -| link:#S0-0314[`S0<21>`] -| link:#S0-058[`S0<23>`] -| link:#S0-0a2[`S0<25>`] -| link:#S0-09e2[`S0<27>`] -| link:#S0-073[`S0<3>`] -| link:#S0-01[`S0<30>`] -| link:#S0-09ee[`S0<33>`] -| link:#S0-033[`S0<36>`] -| link:#S0-06[`S0<39>`] -| link:#S0-0a1[`S0<4>`] -| link:#S0-0ba[`S0<43>`] -| link:#S0-07e[`S0<6>`] -| link:#S0-0a3[`S0<8>`] -| link:#S0-020a[`S0<1, int*>`] -| link:#S0-05a[`S0<10, bool>`] -| link:#S0-0cd[`S0<12, bool>`] -| link:#S0-000[`S0<15, bool>`] -| link:#S0-051[`S0<18, bool>`] -| link:#S0-002[`S0<19, bool>`] -| link:#S0-03c[`S0<2, bool>`] -| link:#S0-003[`S0<21, bool>`] -| link:#S0-0c7[`S0<23, bool>`] -| link:#S0-0529f[`S0<25, bool>`] -| link:#S0-007[`S0<27, bool>`] -| link:#S0-092[`S0<3, bool>`] -| link:#S0-021[`S0<30, bool>`] -| link:#S0-0318[`S0<33, bool>`] -| link:#S0-0d[`S0<36, bool>`] -| link:#S0-0206[`S0<39, bool>`] -| link:#S0-0b6[`S0<4, bool>`] -| link:#S0-05291[`S0<43, bool>`] -| link:#S0-023[`S0<6, bool>`] -| link:#S0-04[`S0<8, bool>`] -| link:#S0-0c4[`S0<1, T*>`] |=== [#R0] @@ -1408,6 +1367,55 @@ struct S0; | |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#S0-000[`S0<15, bool>`] +| link:#S0-002[`S0<19, bool>`] +| link:#S0-003[`S0<21, bool>`] +| link:#S0-007[`S0<27, bool>`] +| link:#S0-01[`S0<30>`] +| link:#S0-0206[`S0<39, bool>`] +| link:#S0-020a[`S0<1, int*>`] +| link:#S0-021[`S0<30, bool>`] +| link:#S0-023[`S0<6, bool>`] +| link:#S0-0314[`S0<21>`] +| link:#S0-0318[`S0<33, bool>`] +| link:#S0-033[`S0<36>`] +| link:#S0-03c[`S0<2, bool>`] +| link:#S0-04[`S0<8, bool>`] +| link:#S0-051[`S0<18, bool>`] +| link:#S0-05291[`S0<43, bool>`] +| link:#S0-0529f[`S0<25, bool>`] +| link:#S0-058[`S0<23>`] +| link:#S0-05a[`S0<10, bool>`] +| link:#S0-06[`S0<39>`] +| link:#S0-073[`S0<3>`] +| link:#S0-07a[`S0<18>`] +| link:#S0-07e[`S0<6>`] +| link:#S0-087[`S0<10>`] +| link:#S0-092[`S0<3, bool>`] +| link:#S0-09c[`S0<2>`] +| link:#S0-09e2[`S0<27>`] +| link:#S0-09e4[`S0<15>`] +| link:#S0-09ee[`S0<33>`] +| link:#S0-0a1[`S0<4>`] +| link:#S0-0a2[`S0<25>`] +| link:#S0-0a3[`S0<8>`] +| link:#S0-0a7[`S0<19>`] +| link:#S0-0b6[`S0<4, bool>`] +| link:#S0-0ba[`S0<43>`] +| link:#S0-0be[`S0<0>`] +| link:#S0-0c4[`S0<1, T*>`] +| link:#S0-0c7[`S0<23, bool>`] +| link:#S0-0cd[`S0<12, bool>`] +| link:#S0-0d[`S0<36, bool>`] +| link:#S0-0e[`S0<12>`] +|=== + + [#S0-0cf-S1] == link:#S0-0cf[S0]::S1 @@ -1468,6 +1476,25 @@ struct S2; | link:#S0-0cf-S1-S2-f2[`f2`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#S0-09e4-S1-S2-02[`S2<16>`] +| link:#S0-0e-S1-S2-02[`S2<13>`] +| link:#S0-000-S1-S2-03[`S2<16, bool>`] +| link:#S0-0cd-S1-S2-05[`S2<13, bool>`] +| link:#S0-07e-S1-S2-06[`S2<7, T*>`] +| link:#S0-07e-S1-S2-07[`S2<7, int*>`] +| link:#S0-087-S1-S2-08[`S2<11>`] +| link:#S0-04-S1-S2-0a[`S2<9, bool>`] +| link:#S0-05a-S1-S2-0b[`S2<11, bool>`] +| link:#S0-0a3-S1-S2-0c[`S2<9>`] +| link:#S0-0a1-S1-S2-0f[`S2<5>`] +|=== + + [#S0-0cf-S1-S2-S3] == link:#S0-0cf[S0]::link:#S0-0cf-S1[S1]::link:#S0-0cf-S1-S2[S2]::S3 @@ -1524,6 +1551,17 @@ struct S4; | link:#S0-0cf-S1-S2-S4-f4[`f4`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#S0-09e4-S1-S2-02-S4-02[`S4<17, int*>`] +| link:#S0-09e4-S1-S2-02-S4-07[`S4<17, T*>`] +| link:#S0-0e-S1-S2-02-S4-0c[`S4<14>`] +|=== + + [#S0-0cf-S1-S2-S4-f4] == link:#S0-0cf[S0]::link:#S0-0cf-S1[S1]::link:#S0-0cf-S1-S2[S2]::link:#S0-0cf-S1-S2-S4[S4]::f4 @@ -1594,6 +1632,33 @@ struct S5; | link:#S0-0cf-S5-f5[`f5`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#S0-09ee-S5-02[`S5<34>`] +| link:#S0-0a2-S5-02[`S5<26>`] +| link:#S0-0314-S5-03[`S5<22, int*>`] +| link:#S0-01-S5-04[`S5<31>`] +| link:#S0-0529f-S5-05c[`S5<26, bool>`] +| link:#S0-0a7-S5-07[`S5<20>`] +| link:#S0-06-S5-07[`S5<40>`] +| link:#S0-0206-S5-08[`S5<40, bool>`] +| link:#S0-0ba-S5-08[`S5<44>`] +| link:#S0-058-S5-09[`S5<24>`] +| link:#S0-021-S5-0b[`S5<31, bool>`] +| link:#S0-0d-S5-0b[`S5<37, bool>`] +| link:#S0-0318-S5-0b[`S5<34, bool>`] +| link:#S0-0314-S5-0b[`S5<22, T*>`] +| link:#S0-09e2-S5-0c[`S5<28>`] +| link:#S0-007-S5-0d[`S5<28, bool>`] +| link:#S0-05291-S5-0e[`S5<44, bool>`] +| link:#S0-033-S5-0f[`S5<37>`] +| link:#S0-0c7-S5-0f[`S5<24, bool>`] +|=== + + [#S0-0cf-S5-S6] == link:#S0-0cf[S0]::link:#S0-0cf-S5[S5]::S6 @@ -1654,6 +1719,25 @@ struct S7; | link:#S0-0cf-S5-S6-S7-f7[`f7`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#S0-0206-S5-08-S6-S7-01[`S7<41, bool>`] +| link:#S0-0ba-S5-08-S6-S7-02[`S7<45>`] +| link:#S0-09ee-S5-02-S6-S7-03[`S7<35>`] +| link:#S0-01-S5-04-S6-S7-05[`S7<32>`] +| link:#S0-0318-S5-0b-S6-S7-05[`S7<35, bool>`] +| link:#S0-09e2-S5-0c-S6-S7-0a[`S7<29, T*>`] +| link:#S0-06-S5-07-S6-S7-0a[`S7<41>`] +| link:#S0-0d-S5-0b-S6-S7-0d[`S7<38, bool>`] +| link:#S0-09e2-S5-0c-S6-S7-0d[`S7<29, int*>`] +| link:#S0-033-S5-0f-S6-S7-0d[`S7<38>`] +| link:#S0-05291-S5-0e-S6-S7-0f[`S7<45, bool>`] +|=== + + [#S0-0cf-S5-S6-S7-S8] == link:#S0-0cf[S0]::link:#S0-0cf-S5[S5]::link:#S0-0cf-S5-S6[S6]::link:#S0-0cf-S5-S6-S7[S7]::S8 @@ -1710,6 +1794,17 @@ struct S9; | link:#S0-0cf-S5-S6-S7-S9-f9[`f9`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#S0-06-S5-07-S6-S7-0a-S9-00[`S9<42, T*>`] +| link:#S0-06-S5-07-S6-S7-0a-S9-08[`S9<42, int*>`] +| link:#S0-0ba-S5-08-S6-S7-02-S9-0f[`S9<46>`] +|=== + + [#S0-0cf-S5-S6-S7-S9-f9] == link:#S0-0cf[S0]::link:#S0-0cf-S5[S5]::link:#S0-0cf-S5-S6[S6]::link:#S0-0cf-S5-S6-S7[S7]::link:#S0-0cf-S5-S6-S7-S9[S9]::f9 @@ -1846,7 +1941,6 @@ struct S1; |=== | Name | link:#S0-087-S1-S2-0b[`S2`] -| link:#S0-087-S1-S2-08[`S2<11>`] |=== === Member Functions @@ -2041,7 +2135,6 @@ struct S1; |=== | Name | link:#S0-0e-S1-S2-09[`S2`] -| link:#S0-0e-S1-S2-02[`S2<13>`] |=== === Member Functions @@ -2087,7 +2180,6 @@ struct link:#S0-0cf-S1-S2[S2]<13>; | Name | link:#S0-0e-S1-S2-02-S3[`S3`] | link:#S0-0e-S1-S2-02-S4-00[`S4`] -| link:#S0-0e-S1-S2-02-S4-0c[`S4<14>`] |=== === Member Functions @@ -2250,7 +2342,6 @@ struct S1; |=== | Name | link:#S0-09e4-S1-S2-07[`S2`] -| link:#S0-09e4-S1-S2-02[`S2<16>`] |=== === Member Functions @@ -2296,8 +2387,6 @@ struct link:#S0-0cf-S1-S2[S2]<16>; | Name | link:#S0-09e4-S1-S2-02-S3[`S3`] | link:#S0-09e4-S1-S2-02-S4-00[`S4`] -| link:#S0-09e4-S1-S2-02-S4-02[`S4<17, int*>`] -| link:#S0-09e4-S1-S2-02-S4-07[`S4<17, T*>`] |=== === Member Functions @@ -2535,7 +2624,6 @@ struct link:#S0-0cf[S0]<19>; | Name | link:#S0-0a7-S1[`S1`] | link:#S0-0a7-S5-03[`S5`] -| link:#S0-0a7-S5-07[`S5<20>`] |=== === Member Functions @@ -2709,8 +2797,6 @@ struct link:#S0-0cf[S0]<21>; | Name | link:#S0-0314-S1[`S1`] | link:#S0-0314-S5-07[`S5`] -| link:#S0-0314-S5-03[`S5<22, int*>`] -| link:#S0-0314-S5-0b[`S5<22, T*>`] |=== === Member Functions @@ -2827,7 +2913,6 @@ struct link:#S0-0cf[S0]<23>; | Name | link:#S0-058-S1[`S1`] | link:#S0-058-S5-0b[`S5`] -| link:#S0-058-S5-09[`S5<24>`] |=== === Member Functions @@ -2962,7 +3047,6 @@ struct link:#S0-0cf[S0]<25>; | Name | link:#S0-0a2-S1[`S1`] | link:#S0-0a2-S5-04[`S5`] -| link:#S0-0a2-S5-02[`S5<26>`] |=== === Member Functions @@ -3141,7 +3225,6 @@ struct link:#S0-0cf[S0]<27>; | Name | link:#S0-09e2-S1[`S1`] | link:#S0-09e2-S5-0b[`S5`] -| link:#S0-09e2-S5-0c[`S5<28>`] |=== === Member Functions @@ -3226,8 +3309,6 @@ struct S6; |=== | Name | link:#S0-09e2-S5-0c-S6-S7-0b[`S7`] -| link:#S0-09e2-S5-0c-S6-S7-0d[`S7<29, int*>`] -| link:#S0-09e2-S5-0c-S6-S7-0a[`S7<29, T*>`] |=== === Member Functions @@ -3482,7 +3563,6 @@ struct link:#S0-0cf[S0]<30>; | Name | link:#S0-01-S1[`S1`] | link:#S0-01-S5-07[`S5`] -| link:#S0-01-S5-04[`S5<31>`] |=== === Member Functions @@ -3567,7 +3647,6 @@ struct S6; |=== | Name | link:#S0-01-S5-04-S6-S7-0c[`S7`] -| link:#S0-01-S5-04-S6-S7-05[`S7<32>`] |=== === Member Functions @@ -3675,7 +3754,6 @@ struct link:#S0-0cf[S0]<33>; | Name | link:#S0-09ee-S1[`S1`] | link:#S0-09ee-S5-0b[`S5`] -| link:#S0-09ee-S5-02[`S5<34>`] |=== === Member Functions @@ -3760,7 +3838,6 @@ struct S6; |=== | Name | link:#S0-09ee-S5-02-S6-S7-09[`S7`] -| link:#S0-09ee-S5-02-S6-S7-03[`S7<35>`] |=== === Member Functions @@ -3925,7 +4002,6 @@ struct link:#S0-0cf[S0]<36>; | Name | link:#S0-033-S1[`S1`] | link:#S0-033-S5-03[`S5`] -| link:#S0-033-S5-0f[`S5<37>`] |=== === Member Functions @@ -4010,7 +4086,6 @@ struct S6; |=== | Name | link:#S0-033-S5-0f-S6-S7-05[`S7`] -| link:#S0-033-S5-0f-S6-S7-0d[`S7<38>`] |=== === Member Functions @@ -4175,7 +4250,6 @@ struct link:#S0-0cf[S0]<39>; | Name | link:#S0-06-S1[`S1`] | link:#S0-06-S5-03[`S5`] -| link:#S0-06-S5-07[`S5<40>`] |=== === Member Functions @@ -4260,7 +4334,6 @@ struct S6; |=== | Name | link:#S0-06-S5-07-S6-S7-08[`S7`] -| link:#S0-06-S5-07-S6-S7-0a[`S7<41>`] |=== === Member Functions @@ -4306,8 +4379,6 @@ struct link:#S0-0cf-S5-S6-S7[S7]<41>; | Name | link:#S0-06-S5-07-S6-S7-0a-S8[`S8`] | link:#S0-06-S5-07-S6-S7-0a-S9-05[`S9`] -| link:#S0-06-S5-07-S6-S7-0a-S9-08[`S9<42, int*>`] -| link:#S0-06-S5-07-S6-S7-0a-S9-00[`S9<42, T*>`] |=== === Member Functions @@ -4491,7 +4562,6 @@ struct S1; |=== | Name | link:#S0-0a1-S1-S2-00[`S2`] -| link:#S0-0a1-S1-S2-0f[`S2<5>`] |=== === Member Functions @@ -4601,7 +4671,6 @@ struct link:#S0-0cf[S0]<43>; | Name | link:#S0-0ba-S1[`S1`] | link:#S0-0ba-S5-0f[`S5`] -| link:#S0-0ba-S5-08[`S5<44>`] |=== === Member Functions @@ -4686,7 +4755,6 @@ struct S6; |=== | Name | link:#S0-0ba-S5-08-S6-S7-04[`S7`] -| link:#S0-0ba-S5-08-S6-S7-02[`S7<45>`] |=== === Member Functions @@ -4732,7 +4800,6 @@ struct link:#S0-0cf-S5-S6-S7[S7]<45>; | Name | link:#S0-0ba-S5-08-S6-S7-02-S8[`S8`] | link:#S0-0ba-S5-08-S6-S7-02-S9-0b[`S9`] -| link:#S0-0ba-S5-08-S6-S7-02-S9-0f[`S9<46>`] |=== === Member Functions @@ -4893,8 +4960,6 @@ struct S1; |=== | Name | link:#S0-07e-S1-S2-04[`S2`] -| link:#S0-07e-S1-S2-07[`S2<7, int*>`] -| link:#S0-07e-S1-S2-06[`S2<7, T*>`] |=== === Member Functions @@ -5055,7 +5120,6 @@ struct S1; |=== | Name | link:#S0-0a3-S1-S2-0b[`S2`] -| link:#S0-0a3-S1-S2-0c[`S2<9>`] |=== === Member Functions @@ -5273,7 +5337,6 @@ struct S1; |=== | Name | link:#S0-05a-S1-S2-07[`S2`] -| link:#S0-05a-S1-S2-0b[`S2<11, bool>`] |=== === Member Functions @@ -5468,7 +5531,6 @@ struct S1; |=== | Name | link:#S0-0cd-S1-S2-0e[`S2`] -| link:#S0-0cd-S1-S2-05[`S2<13, bool>`] |=== === Member Functions @@ -5663,7 +5725,6 @@ struct S1; |=== | Name | link:#S0-000-S1-S2-08[`S2`] -| link:#S0-000-S1-S2-03[`S2<16, bool>`] |=== === Member Functions @@ -6194,7 +6255,6 @@ struct link:#S0-0cf[S0]<23, bool>; | Name | link:#S0-0c7-S1[`S1`] | link:#S0-0c7-S5-03[`S5`] -| link:#S0-0c7-S5-0f[`S5<24, bool>`] |=== === Member Functions @@ -6373,7 +6433,6 @@ struct link:#S0-0cf[S0]<25, bool>; | Name | link:#S0-0529f-S1[`S1`] | link:#S0-0529f-S5-051[`S5`] -| link:#S0-0529f-S5-05c[`S5<26, bool>`] |=== === Member Functions @@ -6552,7 +6611,6 @@ struct link:#S0-0cf[S0]<27, bool>; | Name | link:#S0-007-S1[`S1`] | link:#S0-007-S5-0f[`S5`] -| link:#S0-007-S5-0d[`S5<28, bool>`] |=== === Member Functions @@ -6855,7 +6913,6 @@ struct link:#S0-0cf[S0]<30, bool>; | Name | link:#S0-021-S1[`S1`] | link:#S0-021-S5-06[`S5`] -| link:#S0-021-S5-0b[`S5<31, bool>`] |=== === Member Functions @@ -7034,7 +7091,6 @@ struct link:#S0-0cf[S0]<33, bool>; | Name | link:#S0-0318-S1[`S1`] | link:#S0-0318-S5-0f[`S5`] -| link:#S0-0318-S5-0b[`S5<34, bool>`] |=== === Member Functions @@ -7119,7 +7175,6 @@ struct S6; |=== | Name | link:#S0-0318-S5-0b-S6-S7-04[`S7`] -| link:#S0-0318-S5-0b-S6-S7-05[`S7<35, bool>`] |=== === Member Functions @@ -7305,7 +7360,6 @@ struct link:#S0-0cf[S0]<36, bool>; | Name | link:#S0-0d-S1[`S1`] | link:#S0-0d-S5-09[`S5`] -| link:#S0-0d-S5-0b[`S5<37, bool>`] |=== === Member Functions @@ -7390,7 +7444,6 @@ struct S6; |=== | Name | link:#S0-0d-S5-0b-S6-S7-08[`S7`] -| link:#S0-0d-S5-0b-S6-S7-0d[`S7<38, bool>`] |=== === Member Functions @@ -7555,7 +7608,6 @@ struct link:#S0-0cf[S0]<39, bool>; | Name | link:#S0-0206-S1[`S1`] | link:#S0-0206-S5-06[`S5`] -| link:#S0-0206-S5-08[`S5<40, bool>`] |=== === Member Functions @@ -7640,7 +7692,6 @@ struct S6; |=== | Name | link:#S0-0206-S5-08-S6-S7-06[`S7`] -| link:#S0-0206-S5-08-S6-S7-01[`S7<41, bool>`] |=== === Member Functions @@ -7929,7 +7980,6 @@ struct link:#S0-0cf[S0]<43, bool>; | Name | link:#S0-05291-S1[`S1`] | link:#S0-05291-S5-02[`S5`] -| link:#S0-05291-S5-0e[`S5<44, bool>`] |=== === Member Functions @@ -8014,7 +8064,6 @@ struct S6; |=== | Name | link:#S0-05291-S5-0e-S6-S7-04[`S7`] -| link:#S0-05291-S5-0e-S6-S7-0f[`S7<45, bool>`] |=== === Member Functions @@ -8331,7 +8380,6 @@ struct S1; |=== | Name | link:#S0-04-S1-S2-0e[`S2`] -| link:#S0-04-S1-S2-0a[`S2<9, bool>`] |=== === Member Functions diff --git a/test-files/golden-tests/symbols/record/class-template-specializations-1.html b/test-files/golden-tests/symbols/record/class-template-specializations-1.html index bf48da4578..19d3372ff5 100644 --- a/test-files/golden-tests/symbols/record/class-template-specializations-1.html +++ b/test-files/golden-tests/symbols/record/class-template-specializations-1.html @@ -70,48 +70,7 @@

R7 R8 R9 -S0 -S0<0> -S0<10> -S0<12> -S0<15> -S0<18> -S0<19> -S0<2> -S0<21> -S0<23> -S0<25> -S0<27> -S0<3> -S0<30> -S0<33> -S0<36> -S0<39> -S0<4> -S0<43> -S0<6> -S0<8> -S0<1, int*> -S0<10, bool> -S0<12, bool> -S0<15, bool> -S0<18, bool> -S0<19, bool> -S0<2, bool> -S0<21, bool> -S0<23, bool> -S0<25, bool> -S0<27, bool> -S0<3, bool> -S0<30, bool> -S0<33, bool> -S0<36, bool> -S0<39, bool> -S0<4, bool> -S0<43, bool> -S0<6, bool> -S0<8, bool> -S0<1, T*> +S0 @@ -1917,6 +1876,62 @@

+

+
@@ -2008,6 +2023,32 @@

+
+

+Specializations

+ + + + + + + + + + + + + + + + + + + + +
Name
S2<16>
S2<13>
S2<16, bool>
S2<13, bool>
S2<7, T*>
S2<7, int*>
S2<11>
S2<9, bool>
S2<11, bool>
S2<9>
S2<5>
+ +

@@ -2083,6 +2124,24 @@

+
+

+Specializations

+ + + + + + + + + + + + +
Name
S4<17, int*>
S4<17, T*>
S4<14>
+ +

@@ -2171,6 +2230,40 @@

+

@@ -2261,6 +2354,32 @@

+
+

+Specializations

+ + + + + + + + + + + + + + + + + + + + +
Name
S7<41, bool>
S7<45>
S7<35>
S7<32>
S7<35, bool>
S7<29, T*>
S7<41>
S7<38, bool>
S7<29, int*>
S7<38>
S7<45, bool>
+ +

@@ -2336,6 +2455,24 @@

+
+

+Specializations

+ + + + + + + + + + + + +
Name
S9<42, T*>
S9<42, int*>
S9<46>
+ +

@@ -2506,8 +2643,7 @@

-S2 -S2<11> +S2 @@ -2767,8 +2903,7 @@

-S2 -S2<13> +S2 @@ -2831,8 +2966,7 @@

S3 -S4 -S4<14> +S4 @@ -3045,8 +3179,7 @@

-S2 -S2<16> +S2 @@ -3109,9 +3242,7 @@

S3 -S4 -S4<17, int*> -S4<17, T*> +S4 @@ -3421,8 +3552,7 @@

S1 -S5 -S5<20> +S5 @@ -3654,9 +3784,7 @@

S1 -S5 -S5<22, int*> -S5<22, T*> +S5 @@ -3812,8 +3940,7 @@

S1 -S5 -S5<24> +S5 @@ -3994,8 +4121,7 @@

S1 -S5 -S5<26> +S5 @@ -4236,8 +4362,7 @@

S1 -S5 -S5<28> +S5 @@ -4357,9 +4482,7 @@

-S7 -S7<29, int*> -S7<29, T*> +S7 @@ -4696,8 +4819,7 @@

S1 -S5 -S5<31> +S5 @@ -4817,8 +4939,7 @@

-S7 -S7<32> +S7 @@ -4955,8 +5076,7 @@

S1 -S5 -S5<34> +S5 @@ -5076,8 +5196,7 @@

-S7 -S7<35> +S7 @@ -5290,8 +5409,7 @@

S1 -S5 -S5<37> +S5 @@ -5411,8 +5529,7 @@

-S7 -S7<38> +S7 @@ -5625,8 +5742,7 @@

S1 -S5 -S5<40> +S5 @@ -5746,8 +5862,7 @@

-S7 -S7<41> +S7 @@ -5810,9 +5925,7 @@

S8 -S9 -S9<42, int*> -S9<42, T*> +S9 @@ -6053,8 +6166,7 @@

-S2 -S2<5> +S2 @@ -6195,8 +6307,7 @@

S1 -S5 -S5<44> +S5 @@ -6316,8 +6427,7 @@

-S7 -S7<45> +S7 @@ -6380,8 +6490,7 @@

S8 -S9 -S9<46> +S9 @@ -6590,9 +6699,7 @@

-S2 -S2<7, int*> -S2<7, T*> +S2 @@ -6808,8 +6915,7 @@

-S2 -S2<9> +S2 @@ -7101,8 +7207,7 @@

-S2 -S2<11, bool> +S2 @@ -7362,8 +7467,7 @@

-S2 -S2<13, bool> +S2 @@ -7623,8 +7727,7 @@

-S2 -S2<16, bool> +S2 @@ -8333,8 +8436,7 @@

S1 -S5 -S5<24, bool> +S5 @@ -8575,8 +8677,7 @@

S1 -S5 -S5<26, bool> +S5 @@ -8817,8 +8918,7 @@

S1 -S5 -S5<28, bool> +S5 @@ -9227,8 +9327,7 @@

S1 -S5 -S5<31, bool> +S5 @@ -9469,8 +9568,7 @@

S1 -S5 -S5<34, bool> +S5 @@ -9590,8 +9688,7 @@

-S7 -S7<35, bool> +S7 @@ -9832,8 +9929,7 @@

S1 -S5 -S5<37, bool> +S5 @@ -9953,8 +10049,7 @@

-S7 -S7<38, bool> +S7 @@ -10167,8 +10262,7 @@

S1 -S5 -S5<40, bool> +S5 @@ -10288,8 +10382,7 @@

-S7 -S7<41, bool> +S7 @@ -10670,8 +10763,7 @@

S1 -S5 -S5<44, bool> +S5 @@ -10791,8 +10883,7 @@

-S7 -S7<45, bool> +S7 @@ -11216,8 +11307,7 @@

-S2 -S2<9, bool> +S2 diff --git a/test-files/golden-tests/symbols/record/class-template-specializations-1.xml b/test-files/golden-tests/symbols/record/class-template-specializations-1.xml index 4a12a0927b..1aa58dc093 100644 --- a/test-files/golden-tests/symbols/record/class-template-specializations-1.xml +++ b/test-files/golden-tests/symbols/record/class-template-specializations-1.xml @@ -219,6 +219,17 @@ + JnRKKJOV9sM2/Wi7ytI5OenLTcs= + Lu2i8tgrw9I5p6DXmX9LfM8mVSo= + OsUzyKi8NDCZFI1r1y4+Ki/4H0s= + Xes4IqvFnQoGkxPlP4C4wtbjqxQ= + ZyL4aBHmvCmfq+HyxDSySKwRsdA= + eWg27/kfn86dUmPA26mcOo6kkfs= + g2iVCce1Dp6iPMyevfuMN/UU9F0= + p3PhPnVydwdupHBMAXlcrNQuiFo= + tcws+2wcXL0FEmvv7ZVXvxSkAaI= + zpDyI51RjdguXF8/9KXFrICQwEc= + 8snJ9gp5ca88/AsWGEnFe6Ln6RQ= S3 @@ -318,6 +329,9 @@ + J3UZDljdSJ1mGU9Js0JpA3TjVtc= + cV4O7e/J4xug1ZmsOQKwDVjE99M= + yPCRvP9B34hMThomBKlaCzkFM54= f4 @@ -439,6 +453,25 @@ + IhITMrVguwgsTFnxWSalhrn5lnw= + I29LgIfKHs2KVKydoPZ2XncISyM= + NnzxSBCBz0/s6OkCTTL/yDO06Go= + RFQpd+7V+unGQTgk13maA1YEoyY= + XLAZYk894KbFFFIzJpR6c2Fi870= + dO93MwJZmA5Fpzul37ZMH6F1ong= + fpqbvQR9NuaJY4fq9LHbiAsZKzw= + hpAmCOpzad0YvzIs/nrK1blINCo= + j53XjxydcG+wI0iK3mM8/acK5rY= + lmGGu3RmJh5DZfXs5nd811FPf14= + s40Z8yfzcJnCZSeYYV5sYlFzOxs= + tZqwapq24sWOnWsHAcGXH/3yX3Y= + uE1JLlP4kj18/7anYGDOOUyNK5M= + umZ8gPZZ+qTWuYY3zYO/hx1XCGI= + wpJv75dxyLgHOdHJsb50f1IIDVc= + 1ro4Sv8wGUNxysGIgXgcl9hcP68= + 51FuSsXmA0w505ZBRVkx0q/lmUk= + +J66oroZ92MSPf/1vk3672IXQRM= + +YuAVlOefcnfZIU1wckNM7lfNaA= S6 @@ -518,6 +551,17 @@ + GJK8oH0tb+kOcrLsJD4KLPgW01k= + J7tgsUhd+qpsq/85qkEgF1l14uk= + NkmHmT5oAR5xJObAVl4zdPrTJPk= + VxqDdgdkcw8E86ZiNolpXLlhyWs= + V/H0waQNmYhkbcgX6kBFOODNK64= + pbmVOgtPeZtTL7BQG/AM7NVsNdo= + r7aMtw1PqhcjWuGFP7pwiW2v0ks= + 1YtqF4WYT0uK7amUiCmJVk03Oog= + 3eTbiMMR3GPY7/xRty3EmJ9bdQU= + 3jBuzbuFB0fvpQa1ETvIXevGH2w= + 9PQcUNZCJePNJhT5t0prZNV/lHk= S8 @@ -617,6 +661,9 @@ + CvFJnK9Xu7B2Fbh91NqM0+gKVEU= + hwfbdkFRNunC/3V+s6HA5BwWiSQ= + 8PQtbs9xGpu1L+b0VOqfLlE6TnY= f9 @@ -1315,6 +1362,17 @@ + JnRKKJOV9sM2/Wi7ytI5OenLTcs= + Lu2i8tgrw9I5p6DXmX9LfM8mVSo= + OsUzyKi8NDCZFI1r1y4+Ki/4H0s= + Xes4IqvFnQoGkxPlP4C4wtbjqxQ= + ZyL4aBHmvCmfq+HyxDSySKwRsdA= + eWg27/kfn86dUmPA26mcOo6kkfs= + g2iVCce1Dp6iPMyevfuMN/UU9F0= + p3PhPnVydwdupHBMAXlcrNQuiFo= + tcws+2wcXL0FEmvv7ZVXvxSkAaI= + zpDyI51RjdguXF8/9KXFrICQwEc= + 8snJ9gp5ca88/AsWGEnFe6Ln6RQ= S3 @@ -1414,6 +1472,9 @@ + J3UZDljdSJ1mGU9Js0JpA3TjVtc= + cV4O7e/J4xug1ZmsOQKwDVjE99M= + yPCRvP9B34hMThomBKlaCzkFM54= f4 @@ -1535,6 +1596,25 @@ + IhITMrVguwgsTFnxWSalhrn5lnw= + I29LgIfKHs2KVKydoPZ2XncISyM= + NnzxSBCBz0/s6OkCTTL/yDO06Go= + RFQpd+7V+unGQTgk13maA1YEoyY= + XLAZYk894KbFFFIzJpR6c2Fi870= + dO93MwJZmA5Fpzul37ZMH6F1ong= + fpqbvQR9NuaJY4fq9LHbiAsZKzw= + hpAmCOpzad0YvzIs/nrK1blINCo= + j53XjxydcG+wI0iK3mM8/acK5rY= + lmGGu3RmJh5DZfXs5nd811FPf14= + s40Z8yfzcJnCZSeYYV5sYlFzOxs= + tZqwapq24sWOnWsHAcGXH/3yX3Y= + uE1JLlP4kj18/7anYGDOOUyNK5M= + umZ8gPZZ+qTWuYY3zYO/hx1XCGI= + wpJv75dxyLgHOdHJsb50f1IIDVc= + 1ro4Sv8wGUNxysGIgXgcl9hcP68= + 51FuSsXmA0w505ZBRVkx0q/lmUk= + +J66oroZ92MSPf/1vk3672IXQRM= + +YuAVlOefcnfZIU1wckNM7lfNaA= S6 @@ -1614,6 +1694,17 @@ + GJK8oH0tb+kOcrLsJD4KLPgW01k= + J7tgsUhd+qpsq/85qkEgF1l14uk= + NkmHmT5oAR5xJObAVl4zdPrTJPk= + VxqDdgdkcw8E86ZiNolpXLlhyWs= + V/H0waQNmYhkbcgX6kBFOODNK64= + pbmVOgtPeZtTL7BQG/AM7NVsNdo= + r7aMtw1PqhcjWuGFP7pwiW2v0ks= + 1YtqF4WYT0uK7amUiCmJVk03Oog= + 3eTbiMMR3GPY7/xRty3EmJ9bdQU= + 3jBuzbuFB0fvpQa1ETvIXevGH2w= + 9PQcUNZCJePNJhT5t0prZNV/lHk= S8 @@ -1713,6 +1804,9 @@ + CvFJnK9Xu7B2Fbh91NqM0+gKVEU= + hwfbdkFRNunC/3V+s6HA5BwWiSQ= + 8PQtbs9xGpu1L+b0VOqfLlE6TnY= f9 @@ -2352,6 +2446,17 @@ + JnRKKJOV9sM2/Wi7ytI5OenLTcs= + Lu2i8tgrw9I5p6DXmX9LfM8mVSo= + OsUzyKi8NDCZFI1r1y4+Ki/4H0s= + Xes4IqvFnQoGkxPlP4C4wtbjqxQ= + ZyL4aBHmvCmfq+HyxDSySKwRsdA= + eWg27/kfn86dUmPA26mcOo6kkfs= + g2iVCce1Dp6iPMyevfuMN/UU9F0= + p3PhPnVydwdupHBMAXlcrNQuiFo= + tcws+2wcXL0FEmvv7ZVXvxSkAaI= + zpDyI51RjdguXF8/9KXFrICQwEc= + 8snJ9gp5ca88/AsWGEnFe6Ln6RQ= S3 @@ -2451,6 +2556,9 @@ + J3UZDljdSJ1mGU9Js0JpA3TjVtc= + cV4O7e/J4xug1ZmsOQKwDVjE99M= + yPCRvP9B34hMThomBKlaCzkFM54= f4 @@ -2572,6 +2680,25 @@ + IhITMrVguwgsTFnxWSalhrn5lnw= + I29LgIfKHs2KVKydoPZ2XncISyM= + NnzxSBCBz0/s6OkCTTL/yDO06Go= + RFQpd+7V+unGQTgk13maA1YEoyY= + XLAZYk894KbFFFIzJpR6c2Fi870= + dO93MwJZmA5Fpzul37ZMH6F1ong= + fpqbvQR9NuaJY4fq9LHbiAsZKzw= + hpAmCOpzad0YvzIs/nrK1blINCo= + j53XjxydcG+wI0iK3mM8/acK5rY= + lmGGu3RmJh5DZfXs5nd811FPf14= + s40Z8yfzcJnCZSeYYV5sYlFzOxs= + tZqwapq24sWOnWsHAcGXH/3yX3Y= + uE1JLlP4kj18/7anYGDOOUyNK5M= + umZ8gPZZ+qTWuYY3zYO/hx1XCGI= + wpJv75dxyLgHOdHJsb50f1IIDVc= + 1ro4Sv8wGUNxysGIgXgcl9hcP68= + 51FuSsXmA0w505ZBRVkx0q/lmUk= + +J66oroZ92MSPf/1vk3672IXQRM= + +YuAVlOefcnfZIU1wckNM7lfNaA= S6 @@ -2651,6 +2778,17 @@ + GJK8oH0tb+kOcrLsJD4KLPgW01k= + J7tgsUhd+qpsq/85qkEgF1l14uk= + NkmHmT5oAR5xJObAVl4zdPrTJPk= + VxqDdgdkcw8E86ZiNolpXLlhyWs= + V/H0waQNmYhkbcgX6kBFOODNK64= + pbmVOgtPeZtTL7BQG/AM7NVsNdo= + r7aMtw1PqhcjWuGFP7pwiW2v0ks= + 1YtqF4WYT0uK7amUiCmJVk03Oog= + 3eTbiMMR3GPY7/xRty3EmJ9bdQU= + 3jBuzbuFB0fvpQa1ETvIXevGH2w= + 9PQcUNZCJePNJhT5t0prZNV/lHk= S8 @@ -2750,6 +2888,9 @@ + CvFJnK9Xu7B2Fbh91NqM0+gKVEU= + hwfbdkFRNunC/3V+s6HA5BwWiSQ= + 8PQtbs9xGpu1L+b0VOqfLlE6TnY= f9 @@ -2980,6 +3121,17 @@ + JnRKKJOV9sM2/Wi7ytI5OenLTcs= + Lu2i8tgrw9I5p6DXmX9LfM8mVSo= + OsUzyKi8NDCZFI1r1y4+Ki/4H0s= + Xes4IqvFnQoGkxPlP4C4wtbjqxQ= + ZyL4aBHmvCmfq+HyxDSySKwRsdA= + eWg27/kfn86dUmPA26mcOo6kkfs= + g2iVCce1Dp6iPMyevfuMN/UU9F0= + p3PhPnVydwdupHBMAXlcrNQuiFo= + tcws+2wcXL0FEmvv7ZVXvxSkAaI= + zpDyI51RjdguXF8/9KXFrICQwEc= + 8snJ9gp5ca88/AsWGEnFe6Ln6RQ= S3 @@ -3079,6 +3231,9 @@ + J3UZDljdSJ1mGU9Js0JpA3TjVtc= + cV4O7e/J4xug1ZmsOQKwDVjE99M= + yPCRvP9B34hMThomBKlaCzkFM54= f4 @@ -3200,6 +3355,25 @@ + IhITMrVguwgsTFnxWSalhrn5lnw= + I29LgIfKHs2KVKydoPZ2XncISyM= + NnzxSBCBz0/s6OkCTTL/yDO06Go= + RFQpd+7V+unGQTgk13maA1YEoyY= + XLAZYk894KbFFFIzJpR6c2Fi870= + dO93MwJZmA5Fpzul37ZMH6F1ong= + fpqbvQR9NuaJY4fq9LHbiAsZKzw= + hpAmCOpzad0YvzIs/nrK1blINCo= + j53XjxydcG+wI0iK3mM8/acK5rY= + lmGGu3RmJh5DZfXs5nd811FPf14= + s40Z8yfzcJnCZSeYYV5sYlFzOxs= + tZqwapq24sWOnWsHAcGXH/3yX3Y= + uE1JLlP4kj18/7anYGDOOUyNK5M= + umZ8gPZZ+qTWuYY3zYO/hx1XCGI= + wpJv75dxyLgHOdHJsb50f1IIDVc= + 1ro4Sv8wGUNxysGIgXgcl9hcP68= + 51FuSsXmA0w505ZBRVkx0q/lmUk= + +J66oroZ92MSPf/1vk3672IXQRM= + +YuAVlOefcnfZIU1wckNM7lfNaA= S6 @@ -3279,6 +3453,17 @@ + GJK8oH0tb+kOcrLsJD4KLPgW01k= + J7tgsUhd+qpsq/85qkEgF1l14uk= + NkmHmT5oAR5xJObAVl4zdPrTJPk= + VxqDdgdkcw8E86ZiNolpXLlhyWs= + V/H0waQNmYhkbcgX6kBFOODNK64= + pbmVOgtPeZtTL7BQG/AM7NVsNdo= + r7aMtw1PqhcjWuGFP7pwiW2v0ks= + 1YtqF4WYT0uK7amUiCmJVk03Oog= + 3eTbiMMR3GPY7/xRty3EmJ9bdQU= + 3jBuzbuFB0fvpQa1ETvIXevGH2w= + 9PQcUNZCJePNJhT5t0prZNV/lHk= S8 @@ -3378,6 +3563,9 @@ + CvFJnK9Xu7B2Fbh91NqM0+gKVEU= + hwfbdkFRNunC/3V+s6HA5BwWiSQ= + 8PQtbs9xGpu1L+b0VOqfLlE6TnY= f9 @@ -4996,6 +5184,47 @@ + ANhUz0/2S6fRsXsZFhXPTPyPfAE= + AhWlDEmWhkTeQuWWCaZwMGCG5HQ= + A9DWlv0rbuFs3A9eHqZTaJDN7Uk= + ByHV/GlyHOt9h6ZVKpsDi/DkBkM= + FREf1tucqdONQ71W3hB/Sf/Fbw4= + IG7byGfx+stnhACpeGR2toLyv7U= + IKgocAXkFMvNmDD+p5dZpSBSRHI= + IbslzK4eUJj1gUsgbS4h/0Axavg= + IxCiCl8tf7r2/CmQWZiWxFHf7+g= + MUilGFE5YvyMgRjHIcQZ38yyl2c= + MYFk6ANWkex8j7vBuMpAqchgYIY= + MyTy/GXkOXKOTiJVqHAVVvaU4es= + PA+4gdvi0ChhszyGuOL6zlYXHpk= + Rh5ZoB5qF98iwmDPqUPnsyKkTcs= + UUBd87/k0jse5896L03eJ4N0l+c= + UpHebkkBv0Q2s1ECAoKTf79hJ0Q= + Up/SfnuYTQw+Y6klSO3f5z86DOY= + WK6dfZ+3VdrJbp4Egq7SCGyoAF8= + Wu710hbNOx84LbfjQUEgqKkZ2dA= + a69mw641E3cHVf6ovpLtJxTpmps= + c7NNZfjOZ8Ztuw0u26xL/h7UKvA= + eiJusMAs3cvoF4DWqUBlAfXzYcA= + flxREiXFL5ObY0xUAxojj+jvR54= + hwWIBHTi29w+6bJar0PyQvwnZWw= + kn1OyT1FzAvXXJMp4nKleaEX+5c= + nJGs54s6oYf7fHzIpo0tyaCSH9M= + niyoFejCRrpY1Aa9GHwGMnaDfsQ= + nkoZM9sg9xpibNb1eDSyhqn/Ato= + nuqq8wSa/4T9E2xaPl/SzBPbekM= + oXfsqUlMzPbEZZJ7K+iZYQj3wko= + oj8XjM2vuWbeoc2sBpfsIoleCao= + o06yQpJHyCkZyFI44/nN8/tpgT8= + pxo3Lx5X+FdLdaGOmXmAiuNVQME= + tuaR3CreZXFWLNOiRe6vUMcdi/0= + uoCdOuqB1v1s6rvl4wDWcLrD4LA= + vt6SAnqggizkWUqtSC5b9rVm+Qw= + xONzwxGiMBJrTYA5eosi4pOC0n0= + x7MfNbWaSdnUCRBlHt+nSvOlEPw= + zYIKjNzi/kYNKvtrTXu8BhQTFt8= + 1gjCMmREpyWTXEFMqDWbHTY9s+Q= + 7v/tytUkZe7COeYW1bbrzC9LRio= S1 @@ -5075,6 +5304,17 @@ + JnRKKJOV9sM2/Wi7ytI5OenLTcs= + Lu2i8tgrw9I5p6DXmX9LfM8mVSo= + OsUzyKi8NDCZFI1r1y4+Ki/4H0s= + Xes4IqvFnQoGkxPlP4C4wtbjqxQ= + ZyL4aBHmvCmfq+HyxDSySKwRsdA= + eWg27/kfn86dUmPA26mcOo6kkfs= + g2iVCce1Dp6iPMyevfuMN/UU9F0= + p3PhPnVydwdupHBMAXlcrNQuiFo= + tcws+2wcXL0FEmvv7ZVXvxSkAaI= + zpDyI51RjdguXF8/9KXFrICQwEc= + 8snJ9gp5ca88/AsWGEnFe6Ln6RQ= S3 @@ -5174,6 +5414,9 @@ + J3UZDljdSJ1mGU9Js0JpA3TjVtc= + cV4O7e/J4xug1ZmsOQKwDVjE99M= + yPCRvP9B34hMThomBKlaCzkFM54= f4 @@ -5295,6 +5538,25 @@ + IhITMrVguwgsTFnxWSalhrn5lnw= + I29LgIfKHs2KVKydoPZ2XncISyM= + NnzxSBCBz0/s6OkCTTL/yDO06Go= + RFQpd+7V+unGQTgk13maA1YEoyY= + XLAZYk894KbFFFIzJpR6c2Fi870= + dO93MwJZmA5Fpzul37ZMH6F1ong= + fpqbvQR9NuaJY4fq9LHbiAsZKzw= + hpAmCOpzad0YvzIs/nrK1blINCo= + j53XjxydcG+wI0iK3mM8/acK5rY= + lmGGu3RmJh5DZfXs5nd811FPf14= + s40Z8yfzcJnCZSeYYV5sYlFzOxs= + tZqwapq24sWOnWsHAcGXH/3yX3Y= + uE1JLlP4kj18/7anYGDOOUyNK5M= + umZ8gPZZ+qTWuYY3zYO/hx1XCGI= + wpJv75dxyLgHOdHJsb50f1IIDVc= + 1ro4Sv8wGUNxysGIgXgcl9hcP68= + 51FuSsXmA0w505ZBRVkx0q/lmUk= + +J66oroZ92MSPf/1vk3672IXQRM= + +YuAVlOefcnfZIU1wckNM7lfNaA= S6 @@ -5374,6 +5636,17 @@ + GJK8oH0tb+kOcrLsJD4KLPgW01k= + J7tgsUhd+qpsq/85qkEgF1l14uk= + NkmHmT5oAR5xJObAVl4zdPrTJPk= + VxqDdgdkcw8E86ZiNolpXLlhyWs= + V/H0waQNmYhkbcgX6kBFOODNK64= + pbmVOgtPeZtTL7BQG/AM7NVsNdo= + r7aMtw1PqhcjWuGFP7pwiW2v0ks= + 1YtqF4WYT0uK7amUiCmJVk03Oog= + 3eTbiMMR3GPY7/xRty3EmJ9bdQU= + 3jBuzbuFB0fvpQa1ETvIXevGH2w= + 9PQcUNZCJePNJhT5t0prZNV/lHk= S8 @@ -5473,6 +5746,9 @@ + CvFJnK9Xu7B2Fbh91NqM0+gKVEU= + hwfbdkFRNunC/3V+s6HA5BwWiSQ= + 8PQtbs9xGpu1L+b0VOqfLlE6TnY= f9 @@ -5620,6 +5896,7 @@ + 1 S0 @@ -5654,6 +5931,7 @@ + 1 S1 @@ -5766,6 +6044,7 @@ + 1 S3 @@ -6000,6 +6279,7 @@ + 1 S1 @@ -6112,6 +6392,7 @@ + 1 S3 @@ -6218,6 +6499,7 @@ + 1 f2 @@ -6371,6 +6653,7 @@ + 1 S1 @@ -6485,6 +6768,7 @@ + 1 S3 @@ -6603,6 +6887,7 @@ + 1 S4 @@ -6650,6 +6935,7 @@ + 1 f2 @@ -6804,6 +7090,7 @@ + 1 S1 @@ -6943,6 +7230,7 @@ + 1 S1 @@ -7049,6 +7337,7 @@ + 1 f0 @@ -7106,6 +7395,7 @@ + 1 S1 @@ -7247,6 +7537,7 @@ + 1 S1 @@ -7365,6 +7656,7 @@ + 1 S5 @@ -7412,6 +7704,7 @@ + 1 f0 @@ -7470,6 +7763,7 @@ + 1 S1 @@ -7577,6 +7871,7 @@ + 1 S6 @@ -7689,6 +7984,7 @@ + 1 S1 @@ -7796,6 +8092,7 @@ + 1 S6 @@ -7984,6 +8281,7 @@ + 1 S1 @@ -8091,6 +8389,7 @@ + 1 S6 @@ -8214,6 +8513,7 @@ + 1 S7 @@ -8261,6 +8561,7 @@ + 1 f6 @@ -8364,6 +8665,7 @@ + 1 S1 @@ -8579,6 +8881,7 @@ + 1 S1 @@ -8686,6 +8989,7 @@ + 1 S6 @@ -8795,6 +9099,7 @@ + 1 f6 @@ -8899,6 +9204,7 @@ + 1 S1 @@ -9006,6 +9312,7 @@ + 1 S6 @@ -9117,6 +9424,7 @@ + 1 S8 @@ -9325,6 +9633,7 @@ + 1 S1 @@ -9432,6 +9741,7 @@ + 1 S6 @@ -9544,6 +9854,7 @@ + 1 S8 @@ -9752,6 +10063,7 @@ + 1 S1 @@ -9859,6 +10171,7 @@ + 1 S6 @@ -9973,6 +10286,7 @@ + 1 S8 @@ -10091,6 +10405,7 @@ + 1 S9 @@ -10138,6 +10453,7 @@ + 1 f7 @@ -10264,6 +10580,7 @@ + 1 S1 @@ -10373,6 +10690,7 @@ + 1 f1 @@ -10504,6 +10822,7 @@ + 1 S1 @@ -10611,6 +10930,7 @@ + 1 S6 @@ -10723,6 +11043,7 @@ + 1 S8 @@ -10829,6 +11150,7 @@ + 1 f7 @@ -10955,6 +11277,7 @@ + 1 S1 @@ -11078,6 +11401,7 @@ + 1 S2 @@ -11125,6 +11449,7 @@ + 1 f1 @@ -11255,6 +11580,7 @@ + 1 S1 @@ -11366,6 +11692,7 @@ + 1 S3 @@ -11609,6 +11936,7 @@ + 1 S0 @@ -11652,6 +11980,7 @@ + 1 S1 @@ -11772,6 +12101,7 @@ + 1 S3 @@ -12009,6 +12339,7 @@ + 1 S1 @@ -12130,6 +12461,7 @@ + 1 S3 @@ -12367,6 +12699,7 @@ + 1 S1 @@ -12488,6 +12821,7 @@ + 1 S3 @@ -12725,6 +13059,7 @@ + 1 S1 @@ -12867,6 +13202,7 @@ + 1 S1 @@ -13008,6 +13344,7 @@ + 1 S1 @@ -13225,6 +13562,7 @@ + 1 S1 @@ -13367,6 +13705,7 @@ + 1 S1 @@ -13483,6 +13822,7 @@ + 1 S6 @@ -13673,6 +14013,7 @@ + 1 S1 @@ -13789,6 +14130,7 @@ + 1 S6 @@ -13979,6 +14321,7 @@ + 1 S1 @@ -14095,6 +14438,7 @@ + 1 S6 @@ -14285,6 +14629,7 @@ + 1 S1 @@ -14502,6 +14847,7 @@ + 1 S1 @@ -14618,6 +14964,7 @@ + 1 S6 @@ -14809,6 +15156,7 @@ + 1 S1 @@ -14925,6 +15273,7 @@ + 1 S6 @@ -15045,6 +15394,7 @@ + 1 S8 @@ -15280,6 +15630,7 @@ + 1 S1 @@ -15396,6 +15747,7 @@ + 1 S6 @@ -15516,6 +15868,7 @@ + 1 S8 @@ -15727,6 +16080,7 @@ + 1 S1 @@ -15843,6 +16197,7 @@ + 1 S6 @@ -15964,6 +16319,7 @@ + 1 S8 @@ -16174,6 +16530,7 @@ + 1 S1 @@ -16392,6 +16749,7 @@ + 1 S1 @@ -16508,6 +16866,7 @@ + 1 S6 @@ -16629,6 +16988,7 @@ + 1 S8 @@ -16839,6 +17199,7 @@ + 1 S1 @@ -17056,6 +17417,7 @@ + 1 S1 @@ -17176,6 +17538,7 @@ + 1 S3 @@ -17441,5 +17804,6 @@ + 1 diff --git a/test-files/golden-tests/symbols/record/class-template-specializations-2.adoc b/test-files/golden-tests/symbols/record/class-template-specializations-2.adoc index 9c2c3a8229..466c1cfb29 100644 --- a/test-files/golden-tests/symbols/record/class-template-specializations-2.adoc +++ b/test-files/golden-tests/symbols/record/class-template-specializations-2.adoc @@ -10,9 +10,6 @@ |=== | Name | link:#A-0e[`A`] -| link:#A-06[`A<double>`] -| link:#A-02[`A<long*>`] -| link:#A-03[`A<T*>`] |=== [#A-0e] @@ -28,6 +25,17 @@ template<typename T> struct A; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-02[`A<long*>`] +| link:#A-03[`A<T*>`] +| link:#A-06[`A<double>`] +|=== + + [#A-06] == link:#A-0e[A]<double> @@ -47,8 +55,6 @@ struct link:#A-0e[A]<double>; |=== | Name | link:#A-06-D-0b[`D`] -| link:#A-06-D-04[`D<float>`] -| link:#A-06-D-07[`D<short>`] |=== [#A-06-D-0b] @@ -70,9 +76,18 @@ struct D; |=== | Name | link:#A-06-D-0b-E-01[`E`] -| link:#A-06-D-0b-E-04[`E<T*>`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-06-D-04[`D<float>`] +| link:#A-06-D-07[`D<short>`] +|=== + + [#A-06-D-0b-E-01] == link:#A-06[A<double>]::link:#A-06-D-0b[D]::E @@ -86,6 +101,16 @@ template<typename T> struct E; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-06-D-07-E-01[`E<int*>`] +| link:#A-06-D-0b-E-04[`E<T*>`] +|=== + + [#A-06-D-0b-E-04] == link:#A-06[A<double>]::link:#A-06-D-0b[D]::link:#A-06-D-0b-E-01[E]<T*> @@ -138,7 +163,6 @@ struct link:#A-06-D-0b[D]<float>; |=== | Name | link:#A-06-D-04-G-06[`G`] -| link:#A-06-D-04-G-0c[`G<T*>`] |=== [#A-06-D-04-G-06] @@ -154,6 +178,15 @@ template<typename T> struct G; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-06-D-04-G-0c[`G<T*>`] +|=== + + [#A-06-D-04-G-0c] == link:#A-06[A<double>]::link:#A-06-D-04[D<float>]::link:#A-06-D-04-G-06[G]<T*> @@ -186,7 +219,6 @@ struct link:#A-06-D-0b[D]<short>; |=== | Name | link:#A-06-D-07-E-07[`E`] -| link:#A-06-D-07-E-01[`E<int*>`] |=== [#A-06-D-07-E-07] @@ -254,8 +286,6 @@ struct link:#A-0e[A]<long*>; |=== | Name | link:#A-02-B-06[`B`] -| link:#A-02-B-0d[`B<int>`] -| link:#A-02-B-05[`B<int*>`] |=== [#A-02-B-06] @@ -336,8 +366,6 @@ struct link:#A-0e[A]<T*>; |=== | Name | link:#A-03-B-05[`B`] -| link:#A-03-B-0b[`B<int>`] -| link:#A-03-B-01[`B<U*>`] |=== [#A-03-B-05] @@ -353,6 +381,18 @@ template<typename U> struct B; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-03-B-01[`B<U*>`] +| link:#A-02-B-05[`B<int*>`] +| link:#A-03-B-0b[`B<int>`] +| link:#A-02-B-0d[`B<int>`] +|=== + + [#A-03-B-0b] == link:#A-03[A<T*>]::link:#A-03-B-05[B]<int> diff --git a/test-files/golden-tests/symbols/record/class-template-specializations-2.html b/test-files/golden-tests/symbols/record/class-template-specializations-2.html index 0470da5d08..af7add090d 100644 --- a/test-files/golden-tests/symbols/record/class-template-specializations-2.html +++ b/test-files/golden-tests/symbols/record/class-template-specializations-2.html @@ -21,10 +21,7 @@

-A -A<double> -A<long*> -A<T*> +A @@ -44,6 +41,24 @@

+
+

+Specializations

+ + + + + + + + + + + + +
Name
A<long*>
A<T*>
A<double>
+ +
@@ -68,9 +83,7 @@

-D -D<float> -D<short> +D @@ -100,13 +113,29 @@

-E -E<T*> +E +
+

+Specializations

+ + + + + + + + + + + +
Name
D<float>
D<short>
+ +

@@ -123,6 +152,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
E<int*>
E<T*>
+ +
@@ -192,8 +238,7 @@

-G -G<T*> +G @@ -215,6 +260,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
G<T*>
+ +
@@ -255,8 +316,7 @@

-E -E<int*> +E @@ -347,9 +407,7 @@

-B -B<int> -B<int*> +B @@ -456,9 +514,7 @@

-B -B<int> -B<U*> +B @@ -480,6 +536,25 @@

+
+

+Specializations

+ + + + + + + + + + + + + +
Name
B<U*>
B<int*>
B<int>
B<int>
+ +
diff --git a/test-files/golden-tests/symbols/record/class-template-specializations-2.xml b/test-files/golden-tests/symbols/record/class-template-specializations-2.xml index 2fac92c30d..8da9533449 100644 --- a/test-files/golden-tests/symbols/record/class-template-specializations-2.xml +++ b/test-files/golden-tests/symbols/record/class-template-specializations-2.xml @@ -44,6 +44,9 @@ + K6BawvzqAtXZLU2Hm0qPq6aGiS8= + Nkvb8FA0/0YIpaybicEkWLwFOPo= + bcCFiKKGBMnWrAf/IBu1R/sC07s= A @@ -83,6 +86,7 @@ + 1 D @@ -116,6 +120,8 @@ + RdjbfZA0y514GFSR1pCAjUyfq24= + flW1A8++hJYAIoinZHMJ/EargvI= E @@ -147,6 +153,8 @@ + HzSR9lAhcaSZke6x6ggUIqnawQw= + TpBRSCUm33PjLoWxW50FZsR1GSM= E @@ -191,6 +199,7 @@ + 1 F @@ -253,6 +262,7 @@ + 1 G @@ -284,6 +294,7 @@ + zPgrcrIOrcVWP7Qpw8x3Zl2fIpI= G @@ -327,6 +338,7 @@ + 1 D @@ -365,6 +377,7 @@ + 1 E @@ -435,6 +448,7 @@ + 1 F @@ -506,6 +520,7 @@ + 1 B @@ -573,6 +588,7 @@ + 1 B @@ -612,6 +628,7 @@ + 1 C @@ -688,6 +705,7 @@ + 1 B @@ -719,6 +737,10 @@ + HP4W/UatJ6BMg+LZKC5cQM4kCzw= + WeO5ITJRmNS4Q90O2A5hmw/KZc8= + vuv6bo9spUYsHZ3uwTm6i6UxSNI= + 3isZeaf80hT1/O3yko6EPBPmq8s= B @@ -755,6 +777,7 @@ + 1 B @@ -799,6 +822,7 @@ + 1 C diff --git a/test-files/golden-tests/symbols/record/class-template-specializations-3.adoc b/test-files/golden-tests/symbols/record/class-template-specializations-3.adoc index 53a96dc82e..af2d5ec438 100644 --- a/test-files/golden-tests/symbols/record/class-template-specializations-3.adoc +++ b/test-files/golden-tests/symbols/record/class-template-specializations-3.adoc @@ -10,10 +10,6 @@ |=== | Name | link:#A-0e[`A`] -| link:#A-01[`A<float>`] -| link:#A-0c[`A<long>`] -| link:#A-00[`A<short>`] -| link:#A-07[`A<unsigned int>`] | link:#E[`E`] |=== @@ -36,9 +32,20 @@ struct A; |=== | Name | link:#A-0e-B-07[`B`] -| link:#A-0e-B-00[`B<double>`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-00[`A<short>`] +| link:#A-01[`A<float>`] +| link:#A-07[`A<unsigned int>`] +| link:#A-0c[`A<long>`] +|=== + + [#A-0e-B-07] == link:#A-0e[A]::B @@ -59,9 +66,22 @@ struct B; | Name | link:#A-0e-B-07-C[`C`] | link:#A-0e-B-07-D-09[`D`] -| link:#A-0e-B-07-D-0f[`D<bool>`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-00-B-00[`B<void>`] +| link:#A-0e-B-00[`B<double>`] +| link:#A-07-B-03e[`B<double>`] +| link:#A-07-B-05[`B<float>`] +| link:#A-00-B-07[`B<double>`] +| link:#A-01-B-08[`B<double>`] +|=== + + [#A-0e-B-07-C] == link:#A-0e[A]::link:#A-0e-B-07[B]::C @@ -87,6 +107,16 @@ template<typename V> struct D; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-07-B-05-D-01[`D<bool>`] +| link:#A-0e-B-07-D-0f[`D<bool>`] +|=== + + [#A-0e-B-07-D-0f] == link:#A-0e[A]::link:#A-0e-B-07[B]::link:#A-0e-B-07-D-09[D]<bool> @@ -120,7 +150,6 @@ struct link:#A-0e-B-07[B]<double>; | Name | link:#A-0e-B-00-C[`C`] | link:#A-0e-B-00-D-09[`D`] -| link:#A-0e-B-00-D-0d[`D<bool>`] |=== [#A-0e-B-00-C] @@ -148,6 +177,19 @@ template<typename V> struct D; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-00-B-07-D-0150[`D<bool>`] +| link:#A-0c-B-0d-D-03[`D<bool>`] +| link:#A-01-B-08-D-0af[`D<bool>`] +| link:#A-0e-B-00-D-0d[`D<bool>`] +| link:#A-07-B-03e-D-0f[`D<bool>`] +|=== + + [#A-0e-B-00-D-0d] == link:#A-0e[A]::link:#A-0e-B-00[B<double>]::link:#A-0e-B-00-D-09[D]<bool> @@ -180,7 +222,6 @@ struct link:#A-0e[A]<float>; |=== | Name | link:#A-01-B-07[`B`] -| link:#A-01-B-08[`B<double>`] |=== [#A-01-B-07] @@ -216,7 +257,6 @@ struct link:#A-0e-B-07[B]<double>; | Name | link:#A-01-B-08-C[`C`] | link:#A-01-B-08-D-0ae[`D`] -| link:#A-01-B-08-D-0af[`D<bool>`] |=== [#A-01-B-08-C] @@ -276,8 +316,6 @@ struct link:#A-0e[A]<long>; |=== | Name | link:#A-0c-B-0b[`B`] -| link:#A-0c-B-0d[`B<double>`] -| link:#A-0c-B-08[`B<float>`] |=== [#A-0c-B-0b] @@ -300,9 +338,18 @@ struct B; | Name | link:#A-0c-B-0b-C[`C`] | link:#A-0c-B-0b-D-00[`D`] -| link:#A-0c-B-0b-D-0b[`D<bool>`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-0c-B-08[`B<float>`] +| link:#A-0c-B-0d[`B<double>`] +|=== + + [#A-0c-B-0b-C] == link:#A-0c[A<long>]::link:#A-0c-B-0b[B]::C @@ -328,6 +375,16 @@ template<typename V> struct D; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-0c-B-08-D-03[`D<bool>`] +| link:#A-0c-B-0b-D-0b[`D<bool>`] +|=== + + [#A-0c-B-0b-D-0b] == link:#A-0c[A<long>]::link:#A-0c-B-0b[B]::link:#A-0c-B-0b-D-00[D]<bool> @@ -361,7 +418,6 @@ struct link:#A-0c-B-0b[B]<double>; | Name | link:#A-0c-B-0d-C[`C`] | link:#A-0c-B-0d-D-0c[`D`] -| link:#A-0c-B-0d-D-03[`D<bool>`] |=== [#A-0c-B-0d-C] @@ -422,7 +478,6 @@ struct link:#A-0c-B-0b[B]<float>; | Name | link:#A-0c-B-08-C[`C`] | link:#A-0c-B-08-D-08[`D`] -| link:#A-0c-B-08-D-03[`D<bool>`] |=== [#A-0c-B-08-C] @@ -482,8 +537,6 @@ struct link:#A-0e[A]<short>; |=== | Name | link:#A-00-B-0e[`B`] -| link:#A-00-B-07[`B<double>`] -| link:#A-00-B-00[`B<void>`] |=== [#A-00-B-0e] @@ -519,7 +572,6 @@ struct link:#A-0e-B-07[B]<double>; | Name | link:#A-00-B-07-C[`C`] | link:#A-00-B-07-D-015b[`D`] -| link:#A-00-B-07-D-0150[`D<bool>`] |=== [#A-00-B-07-C] @@ -580,7 +632,6 @@ struct link:#A-0e-B-07[B]<void>; | Name | link:#A-00-B-00-C[`C`] | link:#A-00-B-00-D-03[`D`] -| link:#A-00-B-00-D-07[`D<bool>`] |=== [#A-00-B-00-C] @@ -608,6 +659,15 @@ template<typename V> struct D; ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-00-B-00-D-07[`D<bool>`] +|=== + + [#A-00-B-00-D-07] == link:#A-00[A<short>]::link:#A-00-B-00[B<void>]::link:#A-00-B-00-D-03[D]<bool> @@ -640,8 +700,6 @@ struct link:#A-0e[A]<unsigned int>; |=== | Name | link:#A-07-B-03a[`B`] -| link:#A-07-B-03e[`B<double>`] -| link:#A-07-B-05[`B<float>`] |=== [#A-07-B-03a] @@ -677,7 +735,6 @@ struct link:#A-0e-B-07[B]<double>; | Name | link:#A-07-B-03e-C[`C`] | link:#A-07-B-03e-D-01[`D`] -| link:#A-07-B-03e-D-0f[`D<bool>`] |=== [#A-07-B-03e-C] @@ -738,7 +795,6 @@ struct link:#A-0e-B-07[B]<float>; | Name | link:#A-07-B-05-C[`C`] | link:#A-07-B-05-D-0e[`D`] -| link:#A-07-B-05-D-01[`D<bool>`] |=== [#A-07-B-05-C] diff --git a/test-files/golden-tests/symbols/record/class-template-specializations-3.html b/test-files/golden-tests/symbols/record/class-template-specializations-3.html index 72bcb52c47..71fab0924b 100644 --- a/test-files/golden-tests/symbols/record/class-template-specializations-3.html +++ b/test-files/golden-tests/symbols/record/class-template-specializations-3.html @@ -22,10 +22,6 @@

A -A<float> -A<long> -A<short> -A<unsigned int> E @@ -54,13 +50,31 @@

-B -B<double> +B +
+

+Specializations

+ + + + + + + + + + + + + +
Name
A<short>
A<float>
A<unsigned int>
A<long>
+ +

@@ -86,13 +100,33 @@

C -D -D<bool> +D +
+

+Specializations

+ + + + + + + + + + + + + + + +
Name
B<void>
B<double>
B<double>
B<float>
B<double>
B<double>
+ +

@@ -124,6 +158,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
D<bool>
D<bool>
+ +
@@ -165,8 +216,7 @@

C -D -D<bool> +D @@ -203,6 +253,26 @@

+
+

+Specializations

+ + + + + + + + + + + + + + +
Name
D<bool>
D<bool>
D<bool>
D<bool>
D<bool>
+ +
@@ -243,8 +313,7 @@

-B -B<double> +B @@ -291,8 +360,7 @@

C -D -D<bool> +D @@ -369,9 +437,7 @@

-B -B<double> -B<float> +B @@ -402,13 +468,29 @@

C -D -D<bool> +D +
+

+Specializations

+ + + + + + + + + + + +
Name
B<float>
B<double>
+ +

@@ -440,6 +522,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
D<bool>
D<bool>
+ +
@@ -481,8 +580,7 @@

C -D -D<bool> +D @@ -560,8 +658,7 @@

C -D -D<bool> +D @@ -638,9 +735,7 @@

-B -B<double> -B<void> +B @@ -687,8 +782,7 @@

C -D -D<bool> +D @@ -766,8 +860,7 @@

C -D -D<bool> +D @@ -804,6 +897,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
D<bool>
+ +
@@ -844,9 +953,7 @@

-B -B<double> -B<float> +B @@ -893,8 +1000,7 @@

C -D -D<bool> +D @@ -972,8 +1078,7 @@

C -D -D<bool> +D diff --git a/test-files/golden-tests/symbols/record/class-template-specializations-3.xml b/test-files/golden-tests/symbols/record/class-template-specializations-3.xml index 47ad39dfb3..3408eb2ef1 100644 --- a/test-files/golden-tests/symbols/record/class-template-specializations-3.xml +++ b/test-files/golden-tests/symbols/record/class-template-specializations-3.xml @@ -48,6 +48,10 @@ + C6fFmGgpPJ7jgwKJA98mfx5cxts= + GFV3P/JtfrnQwjOLVfI9VbJpd9U= + eeh34/7lF7rCmE7zXKBrUC7mz3A= + y/8TvVlacBAIG2ds2aYgZE+zGUU= B @@ -82,6 +86,12 @@ + AmrHzqMyGcAD714oirSEx/XCTwk= + Ax52oDYNHKdb/kayrTPXtP7EnLo= + Pna+OT/o27zekcoRTFxKtb5m+BQ= + X9RyjucPb3aRFUq3aZCNE4g/ZVE= + fSC2izK+T4vA4Kndw3xNjCTDpoQ= + gNJJgsCrBHI+de6/WxRWfc6QUSQ= C @@ -137,6 +147,8 @@ + E3rBDckOC8QkP+2YLNtbMxg69mc= + 8gtdVs8Zc/2hE1ugmc5SJaowDrk= D @@ -173,6 +185,7 @@ + 1 B @@ -212,6 +225,7 @@ + 1 C @@ -267,6 +281,11 @@ + FQCRWOnd4VbpVowmyiWSRR2l2cA= + P+rxL5vI4ct+gzn9YkO97Pt7Ras= + rzmzIDLemEwnRqvVCiQsLO9rHE4= + 2n2EC+ZzX4R61vVgqMqWD1h4Fqc= + 9bJvdwRZpk2+HRV+Az3lOybs1Wc= D @@ -303,6 +322,7 @@ + 1 A @@ -341,6 +361,7 @@ + 1 B @@ -411,6 +432,7 @@ + 1 C @@ -502,6 +524,7 @@ + 1 A @@ -541,6 +564,7 @@ + 1 B @@ -581,6 +605,8 @@ + jvnZWmA3eB78JX83nJawhD8NGhw= + 3fOXhba/en8Im2gUSThzllitRc0= C @@ -636,6 +662,8 @@ + NNxnP63PrqW2AkyLFpJx0uaNuTk= + vu+upAyFdAr9NpomAT9maDrr5VU= D @@ -672,6 +700,7 @@ + 1 B @@ -711,6 +740,7 @@ + 1 C @@ -802,6 +832,7 @@ + 1 B @@ -841,6 +872,7 @@ + 1 C @@ -932,6 +964,7 @@ + 1 A @@ -971,6 +1004,7 @@ + 1 B @@ -1041,6 +1075,7 @@ + 1 C @@ -1132,6 +1167,7 @@ + 1 B @@ -1171,6 +1207,7 @@ + 1 C @@ -1226,6 +1263,7 @@ + eYdoT3vlHlbkG+t3+ckhZAqrnlY= D @@ -1262,6 +1300,7 @@ + 1 A @@ -1301,6 +1340,7 @@ + 1 B @@ -1371,6 +1411,7 @@ + 1 C @@ -1462,6 +1503,7 @@ + 1 B @@ -1501,6 +1543,7 @@ + 1 C @@ -1592,6 +1635,7 @@ + 1 E diff --git a/test-files/golden-tests/symbols/record/template-specialization-inheritance.adoc b/test-files/golden-tests/symbols/record/template-specialization-inheritance.adoc index f4f4446b18..a7eea74604 100644 --- a/test-files/golden-tests/symbols/record/template-specialization-inheritance.adoc +++ b/test-files/golden-tests/symbols/record/template-specialization-inheritance.adoc @@ -13,10 +13,6 @@ | link:#R1[`R1`] | link:#R2[`R2`] | link:#S0-0cf[`S0`] -| link:#S0-09[`S0<2>`] -| link:#S0-073[`S0<3>`] -| link:#S0-0e[`S0<5>`] -| link:#S0-07e[`S0<6>`] | link:#U1[`U1`] | link:#U2[`U2`] | link:#U3[`U3`] @@ -168,6 +164,18 @@ struct S0; | |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#S0-073[`S0<3>`] +| link:#S0-07e[`S0<6>`] +| link:#S0-09[`S0<2>`] +| link:#S0-0e[`S0<5>`] +|=== + + [#S0-0cf-S1] == link:#S0-0cf[S0]::S1 diff --git a/test-files/golden-tests/symbols/record/template-specialization-inheritance.html b/test-files/golden-tests/symbols/record/template-specialization-inheritance.html index 8ce550db46..60fd3fa9b8 100644 --- a/test-files/golden-tests/symbols/record/template-specialization-inheritance.html +++ b/test-files/golden-tests/symbols/record/template-specialization-inheritance.html @@ -25,10 +25,6 @@

R1 R2 S0 -S0<2> -S0<3> -S0<5> -S0<6> U1 U2 U3 @@ -228,6 +224,25 @@

+

+
+

+Specializations

+ + + + + + + + + + + + + +
Name
S0<3>
S0<6>
S0<2>
S0<5>
+
diff --git a/test-files/golden-tests/symbols/record/template-specialization-inheritance.xml b/test-files/golden-tests/symbols/record/template-specialization-inheritance.xml index b30ebd31a6..6d182e9c90 100644 --- a/test-files/golden-tests/symbols/record/template-specialization-inheritance.xml +++ b/test-files/golden-tests/symbols/record/template-specialization-inheritance.xml @@ -276,6 +276,10 @@ + c7NNZfjOZ8Ztuw0u26xL/h7UKvA= + flxREiXFL5ObY0xUAxojj+jvR54= + nJGs54s6oYf7fHzIpo0tyaCSH9M= + 6Syw3aWFS3pfPUbWU7C8uCE7Jjc= S1 @@ -332,6 +336,7 @@ + 1 S1 @@ -389,6 +394,7 @@ + 1 S0 @@ -421,6 +427,7 @@ + 1 S1 @@ -476,5 +483,6 @@ + 1 diff --git a/test-files/golden-tests/symbols/typedef/decay-to-primary.adoc b/test-files/golden-tests/symbols/typedef/decay-to-primary.adoc index 1a7a7c9f5b..3450760e54 100644 --- a/test-files/golden-tests/symbols/typedef/decay-to-primary.adoc +++ b/test-files/golden-tests/symbols/typedef/decay-to-primary.adoc @@ -10,8 +10,6 @@ |=== | Name | link:#S0-03[`S0`] -| link:#S0-09[`S0<short>`] -| link:#S0-00[`S0<void>`] | link:#A0[`A0`] | link:#A1[`A1`] |=== @@ -62,6 +60,16 @@ struct S0; | link:#S0-03-M1[`M1`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#S0-00[`S0<void>`] +| link:#S0-09[`S0<short>`] +|=== + + [#S0-03-M0] == link:#S0-03[S0]::M0 diff --git a/test-files/golden-tests/symbols/typedef/decay-to-primary.html b/test-files/golden-tests/symbols/typedef/decay-to-primary.html index 93fcacf5fa..ff7ebc1711 100644 --- a/test-files/golden-tests/symbols/typedef/decay-to-primary.html +++ b/test-files/golden-tests/symbols/typedef/decay-to-primary.html @@ -22,8 +22,6 @@

S0 -S0<short> -S0<void> A0 A1 @@ -86,6 +84,23 @@

+
+

+Specializations

+ + + + + + + + + + + +
Name
S0<void>
S0<short>
+ +

diff --git a/test-files/golden-tests/symbols/typedef/decay-to-primary.xml b/test-files/golden-tests/symbols/typedef/decay-to-primary.xml index ecf53d917c..e0f01cdf73 100644 --- a/test-files/golden-tests/symbols/typedef/decay-to-primary.xml +++ b/test-files/golden-tests/symbols/typedef/decay-to-primary.xml @@ -103,6 +103,8 @@ + BWgkCsMw6w/Tkzj0tkQJ8/AWTUo= + nM49pHyBLj9V6pphxxYAxi4tXXc= M0 @@ -193,6 +195,7 @@ + 1 M0 @@ -283,6 +286,7 @@ + 1 M0 diff --git a/test-files/golden-tests/symbols/typedef/implicit-instantiation-member-ref.adoc b/test-files/golden-tests/symbols/typedef/implicit-instantiation-member-ref.adoc index 61b0da57f3..a78d0f3789 100644 --- a/test-files/golden-tests/symbols/typedef/implicit-instantiation-member-ref.adoc +++ b/test-files/golden-tests/symbols/typedef/implicit-instantiation-member-ref.adoc @@ -10,7 +10,6 @@ |=== | Name | link:#S0-03[`S0`] -| link:#S0-00[`S0<void>`] | link:#A5[`A5`] | link:#A9[`A9`] |=== @@ -60,6 +59,15 @@ struct S0; | link:#S0-03-S2[`S2`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#S0-00[`S0<void>`] +|=== + + [#S0-03-S2] == link:#S0-03[S0]::S2 @@ -82,6 +90,15 @@ struct S2; | link:#S0-03-S2-M3[`M3`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#S0-00-S2-02[`S2<char>`] +|=== + + [#S0-03-S2-M2] == link:#S0-03[S0]::link:#S0-03-S2[S2]::M2 @@ -126,7 +143,6 @@ struct link:#S0-03[S0]<void>; |=== | Name | link:#S0-00-S2-0d[`S2`] -| link:#S0-00-S2-02[`S2<char>`] |=== [#S0-00-S2-0d] diff --git a/test-files/golden-tests/symbols/typedef/implicit-instantiation-member-ref.html b/test-files/golden-tests/symbols/typedef/implicit-instantiation-member-ref.html index ecfa7c7aac..97a3225504 100644 --- a/test-files/golden-tests/symbols/typedef/implicit-instantiation-member-ref.html +++ b/test-files/golden-tests/symbols/typedef/implicit-instantiation-member-ref.html @@ -22,7 +22,6 @@

S0 -S0<void> A5 A9 @@ -84,6 +83,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
S0<void>
+ +

@@ -115,6 +130,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
S2<char>
+ +

@@ -166,8 +197,7 @@

-S2 -S2<char> +S2 diff --git a/test-files/golden-tests/symbols/typedef/implicit-instantiation-member-ref.xml b/test-files/golden-tests/symbols/typedef/implicit-instantiation-member-ref.xml index 748be35ed8..c8f12ae996 100644 --- a/test-files/golden-tests/symbols/typedef/implicit-instantiation-member-ref.xml +++ b/test-files/golden-tests/symbols/typedef/implicit-instantiation-member-ref.xml @@ -111,6 +111,7 @@ + BWgkCsMw6w/Tkzj0tkQJ8/AWTUo= S2 @@ -144,6 +145,7 @@ + LQDMND21bNwDyy/hE3qQoQzFLXY= M2 @@ -234,6 +236,7 @@ + 1 S2 @@ -303,6 +306,7 @@ + 1 M2 diff --git a/test-files/golden-tests/symbols/using/using-alias-template-dependent.adoc b/test-files/golden-tests/symbols/using/using-alias-template-dependent.adoc index 0c6c6c692b..7dc4a7166f 100644 --- a/test-files/golden-tests/symbols/using/using-alias-template-dependent.adoc +++ b/test-files/golden-tests/symbols/using/using-alias-template-dependent.adoc @@ -10,7 +10,6 @@ |=== | Name | link:#enable_if-03[`enable_if`] -| link:#enable_if-0e[`enable_if<false, T>`] | link:#is_match[`is_match`] | link:#_UniqAssignable[`_UniqAssignable`] | link:#_UniqCompatible[`_UniqCompatible`] @@ -70,6 +69,15 @@ struct enable_if; | link:#enable_if-03-type[`type`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#enable_if-0e[`enable_if<false, T>`] +|=== + + [#enable_if-03-type] == link:#enable_if-03[enable_if]::type diff --git a/test-files/golden-tests/symbols/using/using-alias-template-dependent.html b/test-files/golden-tests/symbols/using/using-alias-template-dependent.html index b974229117..af495d1bd0 100644 --- a/test-files/golden-tests/symbols/using/using-alias-template-dependent.html +++ b/test-files/golden-tests/symbols/using/using-alias-template-dependent.html @@ -22,7 +22,6 @@

enable_if -enable_if<false, T> is_match _UniqAssignable _UniqCompatible @@ -94,6 +93,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
enable_if<false, T>
+ +

diff --git a/test-files/golden-tests/symbols/using/using-alias-template-dependent.xml b/test-files/golden-tests/symbols/using/using-alias-template-dependent.xml index f66d9f2772..f0cab02f92 100644 --- a/test-files/golden-tests/symbols/using/using-alias-template-dependent.xml +++ b/test-files/golden-tests/symbols/using/using-alias-template-dependent.xml @@ -130,6 +130,7 @@ + 6f4GHawhlUckr08SJkt7su9cIDY= type @@ -197,6 +198,7 @@ + 1 is_match diff --git a/test-files/golden-tests/templates/c_mct_expl_inline.adoc b/test-files/golden-tests/templates/c_mct_expl_inline.adoc index 2b92b2c11d..d36a4b0c3f 100644 --- a/test-files/golden-tests/templates/c_mct_expl_inline.adoc +++ b/test-files/golden-tests/templates/c_mct_expl_inline.adoc @@ -30,7 +30,6 @@ struct A; |=== | Name | link:#A-B-04[`B`] -| link:#A-B-01[`B<int>`] |=== [#A-B-04] @@ -54,6 +53,15 @@ struct B; | link:#A-B-04-f[`f`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-B-01[`B<int>`] +|=== + + [#A-B-04-f] == link:#A[A]::link:#A-B-04[B]::f diff --git a/test-files/golden-tests/templates/c_mct_expl_inline.html b/test-files/golden-tests/templates/c_mct_expl_inline.html index 68de795537..aa3d8405a1 100644 --- a/test-files/golden-tests/templates/c_mct_expl_inline.html +++ b/test-files/golden-tests/templates/c_mct_expl_inline.html @@ -48,8 +48,7 @@

-B -B<int> +B @@ -85,6 +84,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
B<int>
+ +

diff --git a/test-files/golden-tests/templates/c_mct_expl_inline.xml b/test-files/golden-tests/templates/c_mct_expl_inline.xml index 2a92b6692d..68f3fb8e8f 100644 --- a/test-files/golden-tests/templates/c_mct_expl_inline.xml +++ b/test-files/golden-tests/templates/c_mct_expl_inline.xml @@ -68,6 +68,7 @@ + FxMFFVpoV2/LOOndnkQ2gu3w69U= f @@ -128,6 +129,7 @@ + 1 g diff --git a/test-files/golden-tests/templates/c_mct_expl_outside.adoc b/test-files/golden-tests/templates/c_mct_expl_outside.adoc index dc97e18d36..5cdc312bfa 100644 --- a/test-files/golden-tests/templates/c_mct_expl_outside.adoc +++ b/test-files/golden-tests/templates/c_mct_expl_outside.adoc @@ -30,7 +30,6 @@ struct A; |=== | Name | link:#A-B-04[`B`] -| link:#A-B-01[`B<int>`] |=== [#A-B-04] @@ -54,6 +53,15 @@ struct B; | link:#A-B-04-f[`f`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-B-01[`B<int>`] +|=== + + [#A-B-04-f] == link:#A[A]::link:#A-B-04[B]::f diff --git a/test-files/golden-tests/templates/c_mct_expl_outside.html b/test-files/golden-tests/templates/c_mct_expl_outside.html index 34594d7226..6faf5ac33f 100644 --- a/test-files/golden-tests/templates/c_mct_expl_outside.html +++ b/test-files/golden-tests/templates/c_mct_expl_outside.html @@ -48,8 +48,7 @@

-B -B<int> +B @@ -85,6 +84,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
B<int>
+ +

diff --git a/test-files/golden-tests/templates/c_mct_expl_outside.xml b/test-files/golden-tests/templates/c_mct_expl_outside.xml index 69e21fb2f9..282bd8ef18 100644 --- a/test-files/golden-tests/templates/c_mct_expl_outside.xml +++ b/test-files/golden-tests/templates/c_mct_expl_outside.xml @@ -68,6 +68,7 @@ + FxMFFVpoV2/LOOndnkQ2gu3w69U= f @@ -128,6 +129,7 @@ + 1 g 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 6df23d7c39..4a7eae38e7 100644 --- a/test-files/golden-tests/templates/c_mft_expl_inline.adoc +++ b/test-files/golden-tests/templates/c_mft_expl_inline.adoc @@ -73,6 +73,15 @@ void f(); ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-f-0b[`f<int>`] +|=== + + [#A-f-0b] == link:#A[A]::link:#A-f-0e[f]<int> 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 2c31f305f0..87c540ca56 100644 --- a/test-files/golden-tests/templates/c_mft_expl_inline.html +++ b/test-files/golden-tests/templates/c_mft_expl_inline.html @@ -92,6 +92,22 @@

template<typename T>
 void
 f();
+

+
+

+Specializations

+ + + + + + + + + + +
Name
f<int>
+
diff --git a/test-files/golden-tests/templates/c_mft_expl_inline.xml b/test-files/golden-tests/templates/c_mft_expl_inline.xml index 76b185d1e1..60f988e209 100644 --- a/test-files/golden-tests/templates/c_mft_expl_inline.xml +++ b/test-files/golden-tests/templates/c_mft_expl_inline.xml @@ -89,6 +89,7 @@ normal 1 + veV2posfyuimiNezTTVnomiz6tY= f @@ -124,5 +125,6 @@ normal 1 + 1 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 21efd6b0a6..573bba2855 100644 --- a/test-files/golden-tests/templates/c_mft_expl_outside.adoc +++ b/test-files/golden-tests/templates/c_mft_expl_outside.adoc @@ -73,6 +73,15 @@ void f(); ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-f-0b[`f<int>`] +|=== + + [#A-f-0b] == link:#A[A]::link:#A-f-0e[f]<int> 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 87ac4e085b..24db55c7db 100644 --- a/test-files/golden-tests/templates/c_mft_expl_outside.html +++ b/test-files/golden-tests/templates/c_mft_expl_outside.html @@ -92,6 +92,22 @@

template<typename T>
 void
 f();
+

+
+

+Specializations

+ + + + + + + + + + +
Name
f<int>
+
diff --git a/test-files/golden-tests/templates/c_mft_expl_outside.xml b/test-files/golden-tests/templates/c_mft_expl_outside.xml index 4181a47e63..c0496706ac 100644 --- a/test-files/golden-tests/templates/c_mft_expl_outside.xml +++ b/test-files/golden-tests/templates/c_mft_expl_outside.xml @@ -89,6 +89,7 @@ normal 1 + veV2posfyuimiNezTTVnomiz6tY= f @@ -124,5 +125,6 @@ normal 1 + 1 diff --git a/test-files/golden-tests/templates/ct_expl.adoc b/test-files/golden-tests/templates/ct_expl.adoc index 8739c1570a..9ade28f868 100644 --- a/test-files/golden-tests/templates/ct_expl.adoc +++ b/test-files/golden-tests/templates/ct_expl.adoc @@ -10,7 +10,6 @@ |=== | Name | link:#A-0e[`A`] -| link:#A-00[`A<int>`] |=== [#A-0e] @@ -34,6 +33,15 @@ struct A; | link:#A-0e-f[`f`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-00[`A<int>`] +|=== + + [#A-0e-f] == link:#A-0e[A]::f diff --git a/test-files/golden-tests/templates/ct_expl.html b/test-files/golden-tests/templates/ct_expl.html index 3b3ba969be..b9c68f33eb 100644 --- a/test-files/golden-tests/templates/ct_expl.html +++ b/test-files/golden-tests/templates/ct_expl.html @@ -21,8 +21,7 @@

-A -A<int> +A @@ -56,6 +55,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
A<int>
+ +

diff --git a/test-files/golden-tests/templates/ct_expl.xml b/test-files/golden-tests/templates/ct_expl.xml index e7b8a06820..7a8174c22f 100644 --- a/test-files/golden-tests/templates/ct_expl.xml +++ b/test-files/golden-tests/templates/ct_expl.xml @@ -43,6 +43,7 @@ + AKwlChAOi+0ttIAPsD7uitS+gk0= f @@ -103,6 +104,7 @@ + 1 g diff --git a/test-files/golden-tests/templates/ct_mc_expl_outside.adoc b/test-files/golden-tests/templates/ct_mc_expl_outside.adoc index b3453a76f9..1fbf80f123 100644 --- a/test-files/golden-tests/templates/ct_mc_expl_outside.adoc +++ b/test-files/golden-tests/templates/ct_mc_expl_outside.adoc @@ -10,7 +10,6 @@ |=== | Name | link:#A-0e[`A`] -| link:#A-00[`A<int>`] |=== [#A-0e] @@ -34,6 +33,15 @@ struct A; | link:#A-0e-B[`B`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-00[`A<int>`] +|=== + + [#A-0e-B] == link:#A-0e[A]::B diff --git a/test-files/golden-tests/templates/ct_mc_expl_outside.html b/test-files/golden-tests/templates/ct_mc_expl_outside.html index 09abc77a35..db5ef240e3 100644 --- a/test-files/golden-tests/templates/ct_mc_expl_outside.html +++ b/test-files/golden-tests/templates/ct_mc_expl_outside.html @@ -21,8 +21,7 @@

-A -A<int> +A @@ -56,6 +55,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
A<int>
+ +

diff --git a/test-files/golden-tests/templates/ct_mc_expl_outside.xml b/test-files/golden-tests/templates/ct_mc_expl_outside.xml index f4a71e9b82..674c8824dd 100644 --- a/test-files/golden-tests/templates/ct_mc_expl_outside.xml +++ b/test-files/golden-tests/templates/ct_mc_expl_outside.xml @@ -43,6 +43,7 @@ + AKwlChAOi+0ttIAPsD7uitS+gk0= B @@ -128,6 +129,7 @@ + 1 B diff --git a/test-files/golden-tests/templates/ct_mct_expl_inline.adoc b/test-files/golden-tests/templates/ct_mct_expl_inline.adoc index fe59635555..0f90d8dc36 100644 --- a/test-files/golden-tests/templates/ct_mct_expl_inline.adoc +++ b/test-files/golden-tests/templates/ct_mct_expl_inline.adoc @@ -31,7 +31,6 @@ struct A; |=== | Name | link:#A-B-07[`B`] -| link:#A-B-06[`B<int>`] |=== [#A-B-07] @@ -55,6 +54,15 @@ struct B; | link:#A-B-07-f[`f`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-B-06[`B<int>`] +|=== + + [#A-B-07-f] == link:#A[A]::link:#A-B-07[B]::f diff --git a/test-files/golden-tests/templates/ct_mct_expl_inline.html b/test-files/golden-tests/templates/ct_mct_expl_inline.html index fc6af2293f..86f41ee2bc 100644 --- a/test-files/golden-tests/templates/ct_mct_expl_inline.html +++ b/test-files/golden-tests/templates/ct_mct_expl_inline.html @@ -49,8 +49,7 @@

-B -B<int> +B @@ -86,6 +85,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
B<int>
+ +

diff --git a/test-files/golden-tests/templates/ct_mct_expl_inline.xml b/test-files/golden-tests/templates/ct_mct_expl_inline.xml index 6580f28709..b1ba26341c 100644 --- a/test-files/golden-tests/templates/ct_mct_expl_inline.xml +++ b/test-files/golden-tests/templates/ct_mct_expl_inline.xml @@ -75,6 +75,7 @@ + bHsbts/3qH4qdnqFkFXkR6e8OCw= f @@ -135,6 +136,7 @@ + 1 g diff --git a/test-files/golden-tests/templates/ct_mct_expl_outside.adoc b/test-files/golden-tests/templates/ct_mct_expl_outside.adoc index 470989dd57..7aeb8ea7b5 100644 --- a/test-files/golden-tests/templates/ct_mct_expl_outside.adoc +++ b/test-files/golden-tests/templates/ct_mct_expl_outside.adoc @@ -10,7 +10,6 @@ |=== | Name | link:#A-0e[`A`] -| link:#A-00[`A<int>`] |=== [#A-0e] @@ -34,6 +33,15 @@ struct A; | link:#A-0e-B[`B`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-00[`A<int>`] +|=== + + [#A-0e-B] == link:#A-0e[A]::B @@ -55,6 +63,15 @@ struct B; | link:#A-0e-B-f[`f`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-00-B-02[`B<int>`] +|=== + + [#A-0e-B-f] == link:#A-0e[A]::link:#A-0e-B[B]::f @@ -87,7 +104,6 @@ struct link:#A-0e[A]<int>; |=== | Name | link:#A-00-B-03[`B`] -| link:#A-00-B-02[`B<int>`] |=== [#A-00-B-03] diff --git a/test-files/golden-tests/templates/ct_mct_expl_outside.html b/test-files/golden-tests/templates/ct_mct_expl_outside.html index 0fcbea97cf..137d968032 100644 --- a/test-files/golden-tests/templates/ct_mct_expl_outside.html +++ b/test-files/golden-tests/templates/ct_mct_expl_outside.html @@ -21,8 +21,7 @@

-A -A<int> +A @@ -56,6 +55,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
A<int>
+ +

@@ -86,6 +101,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
B<int>
+ +

@@ -124,8 +155,7 @@

-B -B<int> +B diff --git a/test-files/golden-tests/templates/ct_mct_expl_outside.xml b/test-files/golden-tests/templates/ct_mct_expl_outside.xml index 86c9fbb084..afef786c29 100644 --- a/test-files/golden-tests/templates/ct_mct_expl_outside.xml +++ b/test-files/golden-tests/templates/ct_mct_expl_outside.xml @@ -43,6 +43,7 @@ + AKwlChAOi+0ttIAPsD7uitS+gk0= B @@ -75,6 +76,7 @@ + IMS2etMN5nj/r7pRC8mVNme6K+o= f @@ -136,6 +138,7 @@ + 1 B @@ -204,6 +207,7 @@ + 1 g diff --git a/test-files/golden-tests/templates/ct_mf_expl_outside.adoc b/test-files/golden-tests/templates/ct_mf_expl_outside.adoc index 1174c50a67..11b6e1cca1 100644 --- a/test-files/golden-tests/templates/ct_mf_expl_outside.adoc +++ b/test-files/golden-tests/templates/ct_mf_expl_outside.adoc @@ -10,7 +10,6 @@ |=== | Name | link:#A-0e[`A`] -| link:#A-00[`A<int>`] |=== [#A-0e] @@ -34,6 +33,15 @@ struct A; | link:#A-0e-f[`f`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-00[`A<int>`] +|=== + + [#A-0e-f] == link:#A-0e[A]::f diff --git a/test-files/golden-tests/templates/ct_mf_expl_outside.html b/test-files/golden-tests/templates/ct_mf_expl_outside.html index c175cb3f7f..44b15fba6d 100644 --- a/test-files/golden-tests/templates/ct_mf_expl_outside.html +++ b/test-files/golden-tests/templates/ct_mf_expl_outside.html @@ -21,8 +21,7 @@

-A -A<int> +A @@ -56,6 +55,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
A<int>
+ +

diff --git a/test-files/golden-tests/templates/ct_mf_expl_outside.xml b/test-files/golden-tests/templates/ct_mf_expl_outside.xml index b6803bf651..472de47b3a 100644 --- a/test-files/golden-tests/templates/ct_mf_expl_outside.xml +++ b/test-files/golden-tests/templates/ct_mf_expl_outside.xml @@ -43,6 +43,7 @@ + AKwlChAOi+0ttIAPsD7uitS+gk0= f @@ -103,6 +104,7 @@ + 1 f 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 bf52845b0a..2528f0c5aa 100644 --- a/test-files/golden-tests/templates/ct_mft_expl_inline.adoc +++ b/test-files/golden-tests/templates/ct_mft_expl_inline.adoc @@ -74,6 +74,15 @@ void f(); ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-f-04[`f<int>`] +|=== + + [#A-f-04] == link:#A[A]::link:#A-f-07[f]<int> 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 ac4108b714..8edae7e0c6 100644 --- a/test-files/golden-tests/templates/ct_mft_expl_inline.html +++ b/test-files/golden-tests/templates/ct_mft_expl_inline.html @@ -93,6 +93,22 @@

template<typename U>
 void
 f();
+

+
+

+Specializations

+ + + + + + + + + + +
Name
f<int>
+
diff --git a/test-files/golden-tests/templates/ct_mft_expl_inline.xml b/test-files/golden-tests/templates/ct_mft_expl_inline.xml index cfbc7a499b..0927eb233d 100644 --- a/test-files/golden-tests/templates/ct_mft_expl_inline.xml +++ b/test-files/golden-tests/templates/ct_mft_expl_inline.xml @@ -96,6 +96,7 @@ normal 1 + TneA5Ayz4v/9oOUbbnRL1ybm8VM= f @@ -131,5 +132,6 @@ normal 1 + 1 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 39c851802b..49da666f81 100644 --- a/test-files/golden-tests/templates/ct_mft_expl_outside.adoc +++ b/test-files/golden-tests/templates/ct_mft_expl_outside.adoc @@ -10,7 +10,6 @@ |=== | Name | link:#A-0e[`A`] -| link:#A-00[`A<int>`] |=== [#A-0e] @@ -34,6 +33,15 @@ struct A; | link:#A-0e-f[`f`] |=== +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-00[`A<int>`] +|=== + + [#A-0e-f] == link:#A-0e[A]::f @@ -48,6 +56,15 @@ void f(); ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#A-00-f-07[`f<int>`] +|=== + + [#A-00] == link:#A-0e[A]<int> 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 a16a5c6f94..7e30a3e645 100644 --- a/test-files/golden-tests/templates/ct_mft_expl_outside.html +++ b/test-files/golden-tests/templates/ct_mft_expl_outside.html @@ -21,8 +21,7 @@

-A -A<int> +A @@ -56,6 +55,22 @@

+
+

+Specializations

+ + + + + + + + + + +
Name
A<int>
+ +

@@ -70,6 +85,22 @@

template<typename U>
 void
 f();
+

+
+

+Specializations

+ + + + + + + + + + +
Name
f<int>
+
diff --git a/test-files/golden-tests/templates/ct_mft_expl_outside.xml b/test-files/golden-tests/templates/ct_mft_expl_outside.xml index 4bf78c294d..c38c982b30 100644 --- a/test-files/golden-tests/templates/ct_mft_expl_outside.xml +++ b/test-files/golden-tests/templates/ct_mft_expl_outside.xml @@ -43,6 +43,7 @@ + AKwlChAOi+0ttIAPsD7uitS+gk0= f @@ -73,6 +74,7 @@ normal 1 + fjcm9F09lrCrLSgw6Swqw9KOBlM= A @@ -110,6 +112,7 @@ + 1 f @@ -205,5 +208,6 @@ normal 1 + 1 diff --git a/test-files/golden-tests/templates/ft_expl.adoc b/test-files/golden-tests/templates/ft_expl.adoc index 9e7c47f0ef..b65f36e22f 100644 --- a/test-files/golden-tests/templates/ft_expl.adoc +++ b/test-files/golden-tests/templates/ft_expl.adoc @@ -53,6 +53,15 @@ void f(); ---- +=== Specializations + +[cols=1] +|=== +| Name +| link:#f-0ca[`f<int>`] +|=== + + [#f-0ca] == link:#f-03[f]<int> diff --git a/test-files/golden-tests/templates/ft_expl.html b/test-files/golden-tests/templates/ft_expl.html index 60bdd61040..2ac0d95ed4 100644 --- a/test-files/golden-tests/templates/ft_expl.html +++ b/test-files/golden-tests/templates/ft_expl.html @@ -63,6 +63,22 @@

template<typename T>
 void
 f();
+

+
+

+Specializations

+ + + + + + + + + + +
Name
f<int>
+
diff --git a/test-files/golden-tests/templates/ft_expl.xml b/test-files/golden-tests/templates/ft_expl.xml index 925f1b0e72..8bff955b3e 100644 --- a/test-files/golden-tests/templates/ft_expl.xml +++ b/test-files/golden-tests/templates/ft_expl.xml @@ -63,6 +63,7 @@ normal + ytuvwgqk+lakIfCF209MYkKEp4k= f @@ -97,5 +98,6 @@ PmhXjCXUJYVnj/a7NhfjjSesyp0= normal + 1