From d7855044f1a0868c7a3cbe95f0f64afbd9606e66 Mon Sep 17 00:00:00 2001 From: Agustin Berge Date: Thu, 9 Oct 2025 15:38:28 +0200 Subject: [PATCH 1/6] store record members in corpus --- include/mrdocs/Corpus.hpp | 4 +- include/mrdocs/Metadata/Info/Record.hpp | 18 +- src/lib/AST/ASTVisitor.cpp | 14 +- src/lib/CorpusImpl.cpp | 8 + .../Finalizers/BaseMembersFinalizer.cpp | 23 +-- .../Finalizers/BaseMembersFinalizer.hpp | 7 - .../Finalizers/NamespacesFinalizer.cpp | 2 +- .../Metadata/Finalizers/RecordsFinalizer.cpp | 183 ++++++++++++++++++ .../Metadata/Finalizers/RecordsFinalizer.hpp | 63 ++++++ test-files/golden-tests/core/libcxx.cpp | 152 --------------- 10 files changed, 280 insertions(+), 194 deletions(-) create mode 100644 src/lib/Metadata/Finalizers/RecordsFinalizer.cpp create mode 100644 src/lib/Metadata/Finalizers/RecordsFinalizer.hpp delete mode 100644 test-files/golden-tests/core/libcxx.cpp diff --git a/include/mrdocs/Corpus.hpp b/include/mrdocs/Corpus.hpp index d50ee6e35..c74537137 100644 --- a/include/mrdocs/Corpus.hpp +++ b/include/mrdocs/Corpus.hpp @@ -221,7 +221,7 @@ class MRDOCS_VISIBLE { if (!opts.skipInherited) { - auto MS = allMembers(I); + auto&& MS = allMembers(I); visitIDs(MS, std::forward(f), std::forward(args)...); @@ -257,7 +257,7 @@ class MRDOCS_VISIBLE } else /* ordered */ { - auto members0 = allMembers(I); + auto&& members0 = allMembers(I); static_assert(range_of); std::vector members; members.reserve(std::ranges::distance(members0)); diff --git a/include/mrdocs/Metadata/Info/Record.hpp b/include/mrdocs/Metadata/Info/Record.hpp index db83088d9..972e5ab7e 100644 --- a/include/mrdocs/Metadata/Info/Record.hpp +++ b/include/mrdocs/Metadata/Info/Record.hpp @@ -200,7 +200,6 @@ tag_invoke( v = dom::LazyObject(I, domCorpus); } - inline auto allMembers(RecordInterface const& T) @@ -275,6 +274,13 @@ tag_invoke( v = toString(kind); } +struct MemberInfo +{ + AccessKind EffectiveAccess; + InfoKind Kind; + SymbolID id; +}; + /** Metadata for struct, class, or union. */ struct RecordInfo final @@ -301,11 +307,15 @@ struct RecordInfo final */ std::vector Bases; - /** List of derived classes + /** List of derived classes. */ std::vector Derived; - /** Lists of members. + /** List of members. + */ + std::vector Members; + + /** Record Interface (NOT part of the Corpus.) */ RecordInterface Interface; @@ -345,6 +355,7 @@ inline auto allMembers(RecordInfo const& T) { + //return std::views::transform(T.Members, &MemberInfo::id); return allMembers(T.Interface); } @@ -374,6 +385,7 @@ tag_invoke( io.map("isTypedef", I.IsTypeDef); io.map("bases", dom::LazyArray(I.Bases, domCorpus)); io.map("derived", dom::LazyArray(I.Derived, domCorpus)); + //io.map("members", dom::LazyArray(I.Members, domCorpus)); io.map("interface", I.Interface); io.map("template", I.Template); io.map("friends", dom::LazyArray(I.Friends, domCorpus)); diff --git a/src/lib/AST/ASTVisitor.cpp b/src/lib/AST/ASTVisitor.cpp index a33826061..d285934fd 100644 --- a/src/lib/AST/ASTVisitor.cpp +++ b/src/lib/AST/ASTVisitor.cpp @@ -1770,19 +1770,9 @@ addMember( RecordInfo& I, Info const& Member) { - switch (Member.Access) + if (!std::ranges::contains(I.Members, Member.id, &MemberInfo::id)) { - case AccessKind::Public: - addMember(I.Interface.Public, Member); - break; - case AccessKind::Private: - addMember(I.Interface.Private, Member); - break; - case AccessKind::Protected: - addMember(I.Interface.Protected, Member); - break; - default: - MRDOCS_UNREACHABLE(); + I.Members.emplace_back(Member.Access, Member.Kind, Member.id); } } diff --git a/src/lib/CorpusImpl.cpp b/src/lib/CorpusImpl.cpp index 258c4c8e6..c900db796 100644 --- a/src/lib/CorpusImpl.cpp +++ b/src/lib/CorpusImpl.cpp @@ -20,6 +20,7 @@ #include "lib/Metadata/Finalizers/JavadocFinalizer.hpp" #include "lib/Metadata/Finalizers/NamespacesFinalizer.hpp" #include "lib/Metadata/Finalizers/OverloadsFinalizer.hpp" +#include "lib/Metadata/Finalizers/RecordsFinalizer.hpp" #include "lib/Metadata/Finalizers/SortMembersFinalizer.hpp" #include "lib/Support/Chrono.hpp" #include "lib/Support/Report.hpp" @@ -1003,6 +1004,13 @@ qualifiedName( void CorpusImpl::finalize() { + // Finalizing record interfaces + { + report::debug(" - Finalizing records"); + RecordsFinalizer finalizer(*this); + finalizer.build(); + } + report::info("Finalizing corpus"); { diff --git a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp index 40b944618..b5d6dbeb8 100644 --- a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp +++ b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp @@ -18,17 +18,6 @@ namespace clang::mrdocs { void BaseMembersFinalizer:: inheritBaseMembers(RecordInfo& I, RecordInfo const& B, AccessKind const A) -{ - inheritBaseMembers(I.id, I.Interface, B.Interface, A); -} - -void -BaseMembersFinalizer:: -inheritBaseMembers( - SymbolID const& derivedId, - RecordInterface& derived, - RecordInterface const& base, - AccessKind const A) { if (A == AccessKind::Public) { @@ -37,8 +26,8 @@ inheritBaseMembers( // members of the derived class and all protected members of the base // class are accessible as protected members of the derived class. // Private members of the base are never accessible unless friended. - inheritBaseMembers(derivedId, derived.Public, base.Public); - inheritBaseMembers(derivedId, derived.Protected, base.Protected); + inheritBaseMembers(I.id, I.Interface.Public, B.Interface.Public); + inheritBaseMembers(I.id, I.Interface.Protected, B.Interface.Protected); } else if (A == AccessKind::Protected) { @@ -46,8 +35,8 @@ inheritBaseMembers( // base, all public and protected members of the base class are // accessible as protected members of the derived class (private members // of the base are never accessible unless friended). - inheritBaseMembers(derivedId, derived.Protected, base.Public); - inheritBaseMembers(derivedId, derived.Protected, base.Protected); + inheritBaseMembers(I.id, I.Interface.Protected, B.Interface.Public); + inheritBaseMembers(I.id, I.Interface.Protected, B.Interface.Protected); } else if (A == AccessKind::Private && corpus_.config->extractPrivate) { @@ -55,8 +44,8 @@ inheritBaseMembers( // base, all public and protected members of the base class are // accessible as private members of the derived class (private members // of the base are never accessible unless friended). - inheritBaseMembers(derivedId, derived.Private, base.Public); - inheritBaseMembers(derivedId, derived.Private, base.Protected); + inheritBaseMembers(I.id, I.Interface.Private, B.Interface.Public); + inheritBaseMembers(I.id, I.Interface.Private, B.Interface.Protected); } } diff --git a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.hpp b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.hpp index 1b6659352..0ee3914ca 100644 --- a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.hpp +++ b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.hpp @@ -32,13 +32,6 @@ class BaseMembersFinalizer void inheritBaseMembers(RecordInfo& I, RecordInfo const& B, AccessKind A); - void - inheritBaseMembers( - SymbolID const& derivedId, - RecordInterface& derived, - RecordInterface const& base, - AccessKind A); - void inheritBaseMembers( SymbolID const& derivedId, diff --git a/src/lib/Metadata/Finalizers/NamespacesFinalizer.cpp b/src/lib/Metadata/Finalizers/NamespacesFinalizer.cpp index 424f4cebf..99ceba970 100644 --- a/src/lib/Metadata/Finalizers/NamespacesFinalizer.cpp +++ b/src/lib/Metadata/Finalizers/NamespacesFinalizer.cpp @@ -49,7 +49,7 @@ operator()(NamespaceInfo& I) MRDOCS_CHECK_OR(!I.javadoc, FinalizerResult::None); // 3) Remove empty undocumented namespaces - auto memberIds = allMembers(I); + auto&& memberIds = allMembers(I); if (std::ranges::empty(memberIds)) { if (!corpus_.config->extractEmptyNamespaces) diff --git a/src/lib/Metadata/Finalizers/RecordsFinalizer.cpp b/src/lib/Metadata/Finalizers/RecordsFinalizer.cpp new file mode 100644 index 000000000..09316db18 --- /dev/null +++ b/src/lib/Metadata/Finalizers/RecordsFinalizer.cpp @@ -0,0 +1,183 @@ +// +// 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) 2025 Alan de Freitas (alandefreitas@gmail.com) +// +// Official repository: https://github.com/cppalliance/mrdocs +// + +#include "RecordsFinalizer.hpp" +#include +#include + +namespace clang::mrdocs { + +namespace { + +void +addMember(std::vector& container, Info const& Member) +{ + if (!contains(container, Member.id)) + { + container.push_back(Member.id); + } +} + +void +addMember(RecordTranche& T, Info const& Member) +{ + if (auto const* U = Member.asNamespaceAliasPtr()) + { + addMember(T.NamespaceAliases, *U); + return; + } + if (auto const* U = Member.asTypedefPtr()) + { + addMember(T.Typedefs, *U); + return; + } + if (auto const* U = Member.asRecordPtr()) + { + addMember(T.Records, *U); + return; + } + if (auto const* U = Member.asEnumPtr()) + { + addMember(T.Enums, *U); + return; + } + if (auto const* U = Member.asFunctionPtr()) + { + if (U->StorageClass != StorageClassKind::Static) + { + addMember(T.Functions, *U); + } + else + { + addMember(T.StaticFunctions, *U); + } + return; + } + if (auto const* U = Member.asVariablePtr()) + { + if (U->StorageClass != StorageClassKind::Static) + { + addMember(T.Variables, *U); + } + else + { + addMember(T.StaticVariables, *U); + } + return; + } + if (auto const* U = Member.asConceptPtr()) + { + addMember(T.Concepts, *U); + return; + } + if (auto const* U = Member.asGuidePtr()) + { + addMember(T.Guides, *U); + return; + } + if (auto const* U = Member.asUsingPtr()) + { + addMember(T.Usings, *U); + return; + } + if (auto const* U = Member.asOverloadsPtr()) + { + addMember(T.Functions, *U); + return; + } + report::error("Cannot push {} of type {} into tranche", + Member.Name, + mrdocs::toString(Member.Kind).c_str()); +} + +} + +void +RecordsFinalizer:: +generateRecordInterface(RecordInfo& I) +{ + for (auto const& m: I.Members) + { + Info* infoPtr = corpus_.find(m.id); + MRDOCS_CHECK_OR_CONTINUE(infoPtr); + + Info const& Member = *infoPtr; + switch (Member.Access) + { + case AccessKind::Public: + addMember(I.Interface.Public, Member); + break; + case AccessKind::Private: + addMember(I.Interface.Private, Member); + break; + case AccessKind::Protected: + addMember(I.Interface.Protected, Member); + break; + default: + MRDOCS_UNREACHABLE(); + } + } +} + +void +RecordsFinalizer:: +finalizeRecords(std::vector const& ids) +{ + for (SymbolID const& id: ids) + { + Info* infoPtr = corpus_.find(id); + MRDOCS_CHECK_OR_CONTINUE(infoPtr); + auto* record = infoPtr->asRecordPtr(); + MRDOCS_CHECK_OR_CONTINUE(record); + operator()(*record); + } +} + +void +RecordsFinalizer:: +finalizeNamespaces(std::vector const& ids) +{ + for (SymbolID const& id: ids) + { + Info* infoPtr = corpus_.find(id); + MRDOCS_CHECK_OR_CONTINUE(infoPtr); + auto* ns = infoPtr->asNamespacePtr(); + MRDOCS_CHECK_OR_CONTINUE(ns); + operator()(*ns); + } +} + +void +RecordsFinalizer:: +operator()(NamespaceInfo& I) +{ + report::trace( + "Generating record interfaces for namespace '{}'", + corpus_.Corpus::qualifiedName(I)); + finalizeRecords(I.Members.Records); + finalizeNamespaces(I.Members.Namespaces); +} + +void +RecordsFinalizer:: +operator()(RecordInfo& I) +{ + report::trace( + "Generating record interface for record '{}'", + corpus_.Corpus::qualifiedName(I)); + MRDOCS_CHECK_OR(!finalized_.contains(I.id)); + generateRecordInterface(I); + finalizeRecords(I.Interface.Public.Records); + finalizeRecords(I.Interface.Protected.Records); + finalizeRecords(I.Interface.Private.Records); + finalized_.emplace(I.id); +} + +} // clang::mrdocs diff --git a/src/lib/Metadata/Finalizers/RecordsFinalizer.hpp b/src/lib/Metadata/Finalizers/RecordsFinalizer.hpp new file mode 100644 index 000000000..95e352fbb --- /dev/null +++ b/src/lib/Metadata/Finalizers/RecordsFinalizer.hpp @@ -0,0 +1,63 @@ +// +// 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) 2025 Alan de Freitas (alandefreitas@gmail.com) +// +// Official repository: https://github.com/cppalliance/mrdocs +// + +#ifndef MRDOCS_LIB_METADATA_FINALIZER_RECORDSFINALIZER_HPP +#define MRDOCS_LIB_METADATA_FINALIZER_RECORDSFINALIZER_HPP + +#include "lib/Metadata/InfoSet.hpp" +#include "lib/CorpusImpl.hpp" + +namespace clang::mrdocs { + +/** Finalizes the records in corpus. + + Generates record interfaces. +*/ +class RecordsFinalizer +{ + CorpusImpl& corpus_; + std::unordered_set finalized_; + + void + generateRecordInterface(RecordInfo& I); + + void + finalizeRecords(std::vector const& ids); + + void + finalizeNamespaces(std::vector const& ids); + +public: + RecordsFinalizer( + CorpusImpl& corpus) + : corpus_(corpus) + {} + + void + build() + { + Info* info = corpus_.find(SymbolID::global); + MRDOCS_CHECK_OR(info); + operator()(info->asNamespace()); + } + + void + operator()(NamespaceInfo& I); + + void + operator()(RecordInfo& I); + + void + operator()(Info&) {} +}; + +} // clang::mrdocs + +#endif diff --git a/test-files/golden-tests/core/libcxx.cpp b/test-files/golden-tests/core/libcxx.cpp deleted file mode 100644 index 714a9d823..000000000 --- a/test-files/golden-tests/core/libcxx.cpp +++ /dev/null @@ -1,152 +0,0 @@ -// Check if all std includes are functional with -nostdinc -// defined in MrDocsCompilationDatabase.cpp and headers/libc-stubs - -// libcxx -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/** Computes the square root of an integral value. - - This function calculates the square root of a - given integral value using bit manipulation. - - @throws std::invalid_argument if the input value is negative. - - @tparam T The type of the input value. Must be an integral type. - @param value The integral value to compute the square root of. - @return The square root of the input value. - */ -template -std::enable_if_t, T> -sqrt(T value); - From 65767e26d6ffee7c359e8f488dbefa273c6a080e Mon Sep 17 00:00:00 2001 From: Agustin Berge Date: Thu, 9 Oct 2025 16:19:13 +0200 Subject: [PATCH 2/6] base-members --- src/lib/CorpusImpl.cpp | 14 +- .../Finalizers/BaseMembersFinalizer.cpp | 80 ++-- .../Finalizers/BaseMembersFinalizer.hpp | 12 - .../copy-dependencies.adoc | 119 ++++-- .../copy-dependencies.html | 117 +++++- .../copy-dependencies.xml | 225 ++++++---- .../config/inherit-base-members/copy.adoc | 342 +++++++++++----- .../config/inherit-base-members/copy.html | 383 ++++++++++++------ .../config/inherit-base-members/copy.xml | 225 ++++++---- .../inherit-base-members/reference.adoc | 42 +- .../inherit-base-members/reference.html | 34 +- .../config/inherit-base-members/reference.xml | 160 +++++--- .../inherit-base-members/skip-special.adoc | 119 ++++-- .../inherit-base-members/skip-special.html | 117 +++++- .../inherit-base-members/skip-special.xml | 218 ++++++---- .../symbols/using/using-member-function.adoc | 99 +++-- .../symbols/using/using-member-function.html | 109 +++-- .../symbols/using/using-member-function.xml | 22 +- 18 files changed, 1692 insertions(+), 745 deletions(-) diff --git a/src/lib/CorpusImpl.cpp b/src/lib/CorpusImpl.cpp index c900db796..25b258082 100644 --- a/src/lib/CorpusImpl.cpp +++ b/src/lib/CorpusImpl.cpp @@ -1004,13 +1004,6 @@ qualifiedName( void CorpusImpl::finalize() { - // Finalizing record interfaces - { - report::debug(" - Finalizing records"); - RecordsFinalizer finalizer(*this); - finalizer.build(); - } - report::info("Finalizing corpus"); { @@ -1026,6 +1019,13 @@ CorpusImpl::finalize() finalizer.build(); } + // Finalizing record interfaces + { + report::debug(" - Finalizing records"); + RecordsFinalizer finalizer(*this); + finalizer.build(); + } + if (config->overloads) { report::debug(" - Finalizing overloads"); diff --git a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp index b5d6dbeb8..aa0389ca4 100644 --- a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp +++ b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp @@ -15,9 +15,19 @@ namespace clang::mrdocs { -void -BaseMembersFinalizer:: -inheritBaseMembers(RecordInfo& I, RecordInfo const& B, AccessKind const A) +namespace { +bool +shouldCopy(Config const& config, Info const& M) +{ + if (config->inheritBaseMembers == PublicSettings::BaseMemberInheritance::CopyDependencies) + { + return M.Extraction == ExtractionMode::Dependency; + } + return config->inheritBaseMembers == PublicSettings::BaseMemberInheritance::CopyAll; +} + +AccessKind +effectiveAccess(AccessKind const declaredAccess, AccessKind const A) { if (A == AccessKind::Public) { @@ -26,8 +36,7 @@ inheritBaseMembers(RecordInfo& I, RecordInfo const& B, AccessKind const A) // members of the derived class and all protected members of the base // class are accessible as protected members of the derived class. // Private members of the base are never accessible unless friended. - inheritBaseMembers(I.id, I.Interface.Public, B.Interface.Public); - inheritBaseMembers(I.id, I.Interface.Protected, B.Interface.Protected); + return declaredAccess; } else if (A == AccessKind::Protected) { @@ -35,62 +44,35 @@ inheritBaseMembers(RecordInfo& I, RecordInfo const& B, AccessKind const A) // base, all public and protected members of the base class are // accessible as protected members of the derived class (private members // of the base are never accessible unless friended). - inheritBaseMembers(I.id, I.Interface.Protected, B.Interface.Public); - inheritBaseMembers(I.id, I.Interface.Protected, B.Interface.Protected); + return AccessKind::Protected; } - else if (A == AccessKind::Private && corpus_.config->extractPrivate) + else if (A == AccessKind::Private) { // When a class uses private member access specifier to derive from a // base, all public and protected members of the base class are // accessible as private members of the derived class (private members // of the base are never accessible unless friended). - inheritBaseMembers(I.id, I.Interface.Private, B.Interface.Public); - inheritBaseMembers(I.id, I.Interface.Private, B.Interface.Protected); + return AccessKind::Private; } -} -void -BaseMembersFinalizer:: -inheritBaseMembers( - SymbolID const& derivedId, - RecordTranche& derived, - RecordTranche const& base) -{ - inheritBaseMembers(derivedId, derived.NamespaceAliases, base.NamespaceAliases); - inheritBaseMembers(derivedId, derived.Typedefs, base.Typedefs); - inheritBaseMembers(derivedId, derived.Records, base.Records); - inheritBaseMembers(derivedId, derived.Enums, base.Enums); - inheritBaseMembers(derivedId, derived.Functions, base.Functions); - inheritBaseMembers(derivedId, derived.StaticFunctions, base.StaticFunctions); - inheritBaseMembers(derivedId, derived.Variables, base.Variables); - inheritBaseMembers(derivedId, derived.StaticVariables, base.StaticVariables); - inheritBaseMembers(derivedId, derived.Concepts, base.Concepts); - inheritBaseMembers(derivedId, derived.Guides, base.Guides); -} - -namespace { -bool -shouldCopy(Config const& config, Info const& M) -{ - if (config->inheritBaseMembers == PublicSettings::BaseMemberInheritance::CopyDependencies) - { - return M.Extraction == ExtractionMode::Dependency; - } - return config->inheritBaseMembers == PublicSettings::BaseMemberInheritance::CopyAll; + return AccessKind::None; } } -void +void BaseMembersFinalizer:: -inheritBaseMembers( - SymbolID const& derivedId, - std::vector& derived, - std::vector const& base) +inheritBaseMembers(RecordInfo& I, RecordInfo const& B, AccessKind const A) { - for (SymbolID const& otherID: base) + SymbolID const& derivedId = I.id; + std::vector& derived = I.Members; + std::vector const& base = B.Members; + + for (auto const& other: base) { + SymbolID const& otherID = other.id; + // Find the info from the base class - MRDOCS_CHECK_OR_CONTINUE(!contains(derived, otherID)); + MRDOCS_CHECK_OR_CONTINUE(!std::ranges::contains(derived, otherID, &MemberInfo::id)); Info* otherInfoPtr = corpus_.find(otherID); MRDOCS_CHECK_OR_CONTINUE(otherInfoPtr); Info& otherInfo = *otherInfoPtr; @@ -123,7 +105,7 @@ inheritBaseMembers( // For other kinds of members, it's a shadow if the names // are the same return info.Name == otherInfo.Name; - }); + }, &MemberInfo::id); MRDOCS_CHECK_OR_CONTINUE(shadowIt == derived.end()); // Not a shadow, so inherit the base member @@ -137,7 +119,7 @@ inheritBaseMembers( // extraction mode to be regular, but that is controversial. if (otherInfo.Extraction != ExtractionMode::Dependency) { - derived.push_back(otherID); + derived.emplace_back(effectiveAccess(other.EffectiveAccess, A), other.Kind, otherID); } } else @@ -152,7 +134,7 @@ inheritBaseMembers( otherCopy->id = SymbolID::createFromString( std::format("{}-{}", toBase16Str(otherCopy->Parent), toBase16Str(otherInfo.id))); - derived.push_back(otherCopy->id); + derived.emplace_back(effectiveAccess(other.EffectiveAccess, A), other.Kind, otherCopy->id); // Get the extraction mode from the derived class if (otherCopy->Extraction == ExtractionMode::Dependency) { diff --git a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.hpp b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.hpp index 0ee3914ca..97670bc3a 100644 --- a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.hpp +++ b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.hpp @@ -32,18 +32,6 @@ class BaseMembersFinalizer void inheritBaseMembers(RecordInfo& I, RecordInfo const& B, AccessKind A); - void - inheritBaseMembers( - SymbolID const& derivedId, - RecordTranche& derived, - RecordTranche const& base); - - void - inheritBaseMembers( - SymbolID const& derivedId, - std::vector& derived, - std::vector const& base); - void finalizeRecords(std::vector const& ids); diff --git a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.adoc b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.adoc index c09ad5f58..c85442479 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.adoc +++ b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.adoc @@ -337,8 +337,6 @@ class derived | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. -| link:#base-do_derived_shadowed[`do_derived_shadowed`] -| This function should be shadowed by derived classes. | link:#derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#derived-do_shadowed[`do_shadowed`] @@ -450,10 +448,36 @@ class private_derived |=== | Name | Description +| link:#base_base-base_base_inherited[`base_base_inherited`] +| This function should be indirectly inherited by derived classes. +| link:#base-base_inherited[`base_inherited`] +| This function should be inherited by derived classes. +| link:#base-base_shadowed[`base_shadowed`] +| This function should shadow the excluded_base function. | link:#private_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#private_derived-do_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. +| link:#private_derived-excluded_inherited[`excluded_inherited`] +| This function should be inherited by derived classes. +|=== + +=== Protected Member Functions + +[cols=2] +|=== +| Name +| Description +| link:#base-do_base_inherited[`do_base_inherited`] +| This function should be inherited by derived classes. +| link:#base-do_base_shadowed[`do_base_shadowed`] +| This function should shadow the excluded_base function. +| link:#private_derived-do_excluded_inherited[`do_excluded_inherited`] +| This function should be inherited by derived classes. +| link:#private_derived-do_shadowed[`do_shadowed`] +| This function should be shadowed by derived classes. |=== [#private_derived-derived_shadowed] @@ -494,6 +518,51 @@ do_derived_shadowed(); A class that uses private inheritance only +[#private_derived-excluded_inherited] +== link:#private_derived[private_derived]::excluded_inherited + +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<copy‐dependencies.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +excluded_base& +excluded_inherited(); +---- + +[#private_derived-do_excluded_inherited] +== link:#private_derived[private_derived]::do_excluded_inherited + +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<copy‐dependencies.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +excluded_base& +do_excluded_inherited(); +---- + +[#private_derived-do_shadowed] +== link:#private_derived[private_derived]::do_shadowed + +This function should be shadowed by derived classes. + +=== Synopsis + +Declared in `<copy‐dependencies.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +excluded_base& +do_shadowed(); +---- + [#protected_derived] == protected_derived @@ -528,10 +597,20 @@ class protected_derived |=== | Name | Description +| link:#base_base-base_base_inherited[`base_base_inherited`] +| This function should be indirectly inherited by derived classes. +| link:#base-base_inherited[`base_inherited`] +| This function should be inherited by derived classes. +| link:#base-base_shadowed[`base_shadowed`] +| This function should shadow the excluded_base function. | link:#protected_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#protected_derived-do_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. +| link:#protected_derived-excluded_inherited[`excluded_inherited`] +| This function should be inherited by derived classes. |=== === Protected Member Functions @@ -540,28 +619,14 @@ class protected_derived |=== | Name | Description -| link:#base_base-base_base_inherited[`base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#base-base_inherited[`base_inherited`] -| This function should be inherited by derived classes. -| link:#base-base_shadowed[`base_shadowed`] -| This function should shadow the excluded_base function. -| link:#base-derived_shadowed[`derived_shadowed`] -| This function should be shadowed by derived classes. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. -| link:#base-do_derived_shadowed[`do_derived_shadowed`] -| This function should be shadowed by derived classes. | link:#protected_derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#protected_derived-do_shadowed[`do_shadowed`] | This function should be shadowed by derived classes. -| link:#protected_derived-excluded_inherited[`excluded_inherited`] -| This function should be inherited by derived classes. |=== [#protected_derived-derived_shadowed] @@ -602,8 +667,8 @@ do_derived_shadowed(); A class that should inherit functions as protected. -[#protected_derived-do_excluded_inherited] -== link:#protected_derived[protected_derived]::do_excluded_inherited +[#protected_derived-excluded_inherited] +== link:#protected_derived[protected_derived]::excluded_inherited This function should be inherited by derived classes. @@ -614,13 +679,13 @@ Declared in `<copy‐dependencies.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- excluded_base& -do_excluded_inherited(); +excluded_inherited(); ---- -[#protected_derived-do_shadowed] -== link:#protected_derived[protected_derived]::do_shadowed +[#protected_derived-do_excluded_inherited] +== link:#protected_derived[protected_derived]::do_excluded_inherited -This function should be shadowed by derived classes. +This function should be inherited by derived classes. === Synopsis @@ -629,13 +694,13 @@ Declared in `<copy‐dependencies.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- excluded_base& -do_shadowed(); +do_excluded_inherited(); ---- -[#protected_derived-excluded_inherited] -== link:#protected_derived[protected_derived]::excluded_inherited +[#protected_derived-do_shadowed] +== link:#protected_derived[protected_derived]::do_shadowed -This function should be inherited by derived classes. +This function should be shadowed by derived classes. === Synopsis @@ -644,7 +709,7 @@ Declared in `<copy‐dependencies.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- excluded_base& -excluded_inherited(); +do_shadowed(); ---- diff --git a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.html b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.html index a1576424a..ee2a66d64 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.html +++ b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.html @@ -424,7 +424,6 @@

Protected Member Functions

do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. -do_derived_shadowed This function should be shadowed by derived classes. do_excluded_inherited This function should be inherited by derived classes. do_shadowed This function should be shadowed by derived classes. @@ -570,12 +569,34 @@

Member Functions

+base_base_inherited This function should be indirectly inherited by derived classes. +base_inherited This function should be inherited by derived classes. +base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_derived_shadowed This function should shadow the base class function. +do_base_base_inherited This function should be indirectly inherited by derived classes. +do_derived_shadowed This function should shadow the base class function. +excluded_inherited This function should be inherited by derived classes. +

Protected Member Functions

+ + + + + + + + + + + + + + +
NameDescription
do_base_inherited This function should be inherited by derived classes.
do_base_shadowed This function should shadow the excluded_base function.
do_excluded_inherited This function should be inherited by derived classes.
do_shadowed This function should be shadowed by derived classes.
+
@@ -628,6 +649,66 @@

Return Value

+

private_derived::excluded_inherited

+
+This function should be inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <copy-dependencies.cpp>
+
+excluded_base&
+excluded_inherited();
+
+
+
+
+
+
+
+

private_derived::do_excluded_inherited

+
+This function should be inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <copy-dependencies.cpp>
+
+excluded_base&
+do_excluded_inherited();
+
+
+
+
+
+
+
+

private_derived::do_shadowed

+
+This function should be shadowed by derived classes. + +
+
+
+

Synopsis

+
+Declared in <copy-dependencies.cpp>
+
+excluded_base&
+do_shadowed();
+
+
+
+
+
+
+

protected_derived

A class that should inherit functions as protected. @@ -671,8 +752,13 @@

Member Functions

+base_base_inherited This function should be indirectly inherited by derived classes. +base_inherited This function should be inherited by derived classes. +base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_derived_shadowed This function should shadow the base class function. +do_base_base_inherited This function should be indirectly inherited by derived classes. +do_derived_shadowed This function should shadow the base class function. +excluded_inherited This function should be inherited by derived classes. @@ -687,17 +773,10 @@

Protected Member Functions

-base_base_inherited This function should be indirectly inherited by derived classes. -base_inherited This function should be inherited by derived classes. -base_shadowed This function should shadow the excluded_base function. -derived_shadowed This function should be shadowed by derived classes. -do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. -do_derived_shadowed This function should be shadowed by derived classes. do_excluded_inherited This function should be inherited by derived classes. -do_shadowed This function should be shadowed by derived classes. -excluded_inherited This function should be inherited by derived classes. +do_shadowed This function should be shadowed by derived classes. @@ -753,7 +832,7 @@

Return Value

-

protected_derived::do_excluded_inherited

+

protected_derived::excluded_inherited

This function should be inherited by derived classes. @@ -765,7 +844,7 @@

Synopsis

Declared in <copy-dependencies.cpp>
 excluded_base&
-do_excluded_inherited();
+excluded_inherited();
 
 
 
@@ -773,9 +852,9 @@

Synopsis

-

protected_derived::do_shadowed

+

protected_derived::do_excluded_inherited

-This function should be shadowed by derived classes. +This function should be inherited by derived classes.
@@ -785,7 +864,7 @@

Synopsis

Declared in <copy-dependencies.cpp>
 excluded_base&
-do_shadowed();
+do_excluded_inherited();
 
 
 
@@ -793,9 +872,9 @@

Synopsis

-

protected_derived::excluded_inherited

+

protected_derived::do_shadowed

-This function should be inherited by derived classes. +This function should be shadowed by derived classes.
@@ -805,7 +884,7 @@

Synopsis

Declared in <copy-dependencies.cpp>
 excluded_base&
-excluded_inherited();
+do_shadowed();
 
 
 
diff --git a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.xml b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.xml index 518a2a8f4..bb42c3471 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.xml +++ b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.xml @@ -335,22 +335,6 @@ - - - - - - - - - - This function should be shadowed by derived classes. - - - A base class to test inheritance and shadowing - - - @@ -391,6 +375,54 @@ A class that uses private inheritance only + + + + + + + + + + This function should be indirectly inherited by derived classes. + + + A second-order base class to test indirect inheritance + + + + + + + + + + + + + This function should be inherited by derived classes. + + + A base class to test inheritance and shadowing + + + + + + + + + + + + + This function should shadow the excluded_base function. + + + A base class to test inheritance and shadowing + + + @@ -407,6 +439,22 @@ + + + + + + + + + + This function should be indirectly inherited by derived classes. + + + A second-order base class to test indirect inheritance + + + @@ -423,52 +471,91 @@ - - - - - - - - - - - - A class that should inherit functions as protected. - - - - + + - + - This function should shadow the base class function. + This function should be inherited by derived classes. + + + + + + + + + + + + + This function should be inherited by derived classes. - A class that should inherit functions as protected. + A base class to test inheritance and shadowing - - + + - + - This function should shadow the base class function. + This function should shadow the excluded_base function. - A class that should inherit functions as protected. + A base class to test inheritance and shadowing + + + + + + + + + + This function should be inherited by derived classes. + + + + + + + + + + + + + This function should be shadowed by derived classes. + + + + + + + + + + + + + + + A class that should inherit functions as protected. + + @@ -517,19 +604,19 @@ - - + + - + - This function should be shadowed by derived classes. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that should inherit functions as protected. @@ -549,24 +636,37 @@ - - + + - + - This function should be inherited by derived classes. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that should inherit functions as protected. - - + + + + + + + + + + This function should be inherited by derived classes. + + + + + @@ -574,15 +674,15 @@ - This function should shadow the excluded_base function. + This function should be inherited by derived classes. A base class to test inheritance and shadowing - - + + @@ -590,7 +690,7 @@ - This function should be shadowed by derived classes. + This function should shadow the excluded_base function. A base class to test inheritance and shadowing @@ -623,19 +723,6 @@ - - - - - - - - - - This function should be inherited by derived classes. - - - diff --git a/test-files/golden-tests/config/inherit-base-members/copy.adoc b/test-files/golden-tests/config/inherit-base-members/copy.adoc index 3f9cabdfc..2c2b5bc80 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy.adoc +++ b/test-files/golden-tests/config/inherit-base-members/copy.adoc @@ -359,7 +359,7 @@ class derived | This function should shadow the base class function. | link:#derived-do_base_base_inherited[`do_base_base_inherited`] | This function should be indirectly inherited by derived classes. -| link:#derived-do_derived_shadowed-0a[`do_derived_shadowed`] +| link:#derived-do_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. | link:#derived-excluded_inherited[`excluded_inherited`] | This function should be inherited by derived classes. @@ -375,8 +375,6 @@ class derived | This function should be inherited by derived classes. | link:#derived-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. -| link:#derived-do_derived_shadowed-0d[`do_derived_shadowed`] -| This function should be shadowed by derived classes. | link:#derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#derived-do_shadowed[`do_shadowed`] @@ -478,7 +476,7 @@ do_base_base_inherited(); A second‐order base class to test indirect inheritance -[#derived-do_derived_shadowed-0a] +[#derived-do_derived_shadowed] == link:#derived[derived]::do_derived_shadowed This function should shadow the base class function. @@ -550,25 +548,6 @@ do_base_shadowed(); A base class to test inheritance and shadowing -[#derived-do_derived_shadowed-0d] -== link:#derived[derived]::do_derived_shadowed - -This function should be shadowed by derived classes. - -=== Synopsis - -Declared in `<copy.cpp>` - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -link:#base[base]& -do_derived_shadowed(); ----- - -=== Return Value - -A base class to test inheritance and shadowing - [#derived-do_excluded_inherited] == link:#derived[derived]::do_excluded_inherited @@ -621,11 +600,94 @@ class private_derived |=== | Name | Description +| link:#private_derived-base_base_inherited[`base_base_inherited`] +| This function should be indirectly inherited by derived classes. +| link:#private_derived-base_inherited[`base_inherited`] +| This function should be inherited by derived classes. +| link:#private_derived-base_shadowed[`base_shadowed`] +| This function should shadow the excluded_base function. | link:#private_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. +| link:#private_derived-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#private_derived-do_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. +| link:#private_derived-excluded_inherited[`excluded_inherited`] +| This function should be inherited by derived classes. +|=== + +=== Protected Member Functions + +[cols=2] |=== +| Name +| Description +| link:#private_derived-do_base_inherited[`do_base_inherited`] +| This function should be inherited by derived classes. +| link:#private_derived-do_base_shadowed[`do_base_shadowed`] +| This function should shadow the excluded_base function. +| link:#private_derived-do_excluded_inherited[`do_excluded_inherited`] +| This function should be inherited by derived classes. +| link:#private_derived-do_shadowed[`do_shadowed`] +| This function should be shadowed by derived classes. +|=== + +[#private_derived-base_base_inherited] +== link:#private_derived[private_derived]::base_base_inherited + +This function should be indirectly inherited by derived classes. + +=== Synopsis + +Declared in `<copy.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#base_base[base_base]& +base_base_inherited(); +---- + +=== Return Value + +A second‐order base class to test indirect inheritance + +[#private_derived-base_inherited] +== link:#private_derived[private_derived]::base_inherited + +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<copy.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#base[base]& +base_inherited(); +---- + +=== Return Value + +A base class to test inheritance and shadowing + +[#private_derived-base_shadowed] +== link:#private_derived[private_derived]::base_shadowed + +This function should shadow the excluded_base function. + +=== Synopsis + +Declared in `<copy.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#base[base]& +base_shadowed(); +---- + +=== Return Value + +A base class to test inheritance and shadowing [#private_derived-derived_shadowed] == link:#private_derived[private_derived]::derived_shadowed @@ -646,6 +708,25 @@ derived_shadowed(); A class that uses private inheritance only +[#private_derived-do_base_base_inherited] +== link:#private_derived[private_derived]::do_base_base_inherited + +This function should be indirectly inherited by derived classes. + +=== Synopsis + +Declared in `<copy.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#base_base[base_base]& +do_base_base_inherited(); +---- + +=== Return Value + +A second‐order base class to test indirect inheritance + [#private_derived-do_derived_shadowed] == link:#private_derived[private_derived]::do_derived_shadowed @@ -665,6 +746,89 @@ do_derived_shadowed(); A class that uses private inheritance only +[#private_derived-excluded_inherited] +== link:#private_derived[private_derived]::excluded_inherited + +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<copy.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +excluded_base& +excluded_inherited(); +---- + +[#private_derived-do_base_inherited] +== link:#private_derived[private_derived]::do_base_inherited + +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<copy.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#base[base]& +do_base_inherited(); +---- + +=== Return Value + +A base class to test inheritance and shadowing + +[#private_derived-do_base_shadowed] +== link:#private_derived[private_derived]::do_base_shadowed + +This function should shadow the excluded_base function. + +=== Synopsis + +Declared in `<copy.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#base[base]& +do_base_shadowed(); +---- + +=== Return Value + +A base class to test inheritance and shadowing + +[#private_derived-do_excluded_inherited] +== link:#private_derived[private_derived]::do_excluded_inherited + +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<copy.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +excluded_base& +do_excluded_inherited(); +---- + +[#private_derived-do_shadowed] +== link:#private_derived[private_derived]::do_shadowed + +This function should be shadowed by derived classes. + +=== Synopsis + +Declared in `<copy.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +excluded_base& +do_shadowed(); +---- + [#protected_derived] == protected_derived @@ -699,10 +863,20 @@ class protected_derived |=== | Name | Description -| link:#protected_derived-derived_shadowed-0a[`derived_shadowed`] +| link:#protected_derived-base_base_inherited[`base_base_inherited`] +| This function should be indirectly inherited by derived classes. +| link:#protected_derived-base_inherited[`base_inherited`] +| This function should be inherited by derived classes. +| link:#protected_derived-base_shadowed[`base_shadowed`] +| This function should shadow the excluded_base function. +| link:#protected_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. -| link:#protected_derived-do_derived_shadowed-0e[`do_derived_shadowed`] +| link:#protected_derived-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. +| link:#protected_derived-do_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. +| link:#protected_derived-excluded_inherited[`excluded_inherited`] +| This function should be inherited by derived classes. |=== === Protected Member Functions @@ -711,68 +885,16 @@ class protected_derived |=== | Name | Description -| link:#protected_derived-base_base_inherited[`base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#protected_derived-base_inherited[`base_inherited`] -| This function should be inherited by derived classes. -| link:#protected_derived-base_shadowed[`base_shadowed`] -| This function should shadow the excluded_base function. -| link:#protected_derived-derived_shadowed-0f[`derived_shadowed`] -| This function should be shadowed by derived classes. -| link:#protected_derived-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. | link:#protected_derived-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#protected_derived-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. -| link:#protected_derived-do_derived_shadowed-06[`do_derived_shadowed`] -| This function should be shadowed by derived classes. | link:#protected_derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#protected_derived-do_shadowed[`do_shadowed`] | This function should be shadowed by derived classes. -| link:#protected_derived-excluded_inherited[`excluded_inherited`] -| This function should be inherited by derived classes. |=== -[#protected_derived-derived_shadowed-0a] -== link:#protected_derived[protected_derived]::derived_shadowed - -This function should shadow the base class function. - -=== Synopsis - -Declared in `<copy.cpp>` - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -link:#protected_derived[protected_derived]& -derived_shadowed(); ----- - -=== Return Value - -A class that should inherit functions as protected. - -[#protected_derived-do_derived_shadowed-0e] -== link:#protected_derived[protected_derived]::do_derived_shadowed - -This function should shadow the base class function. - -=== Synopsis - -Declared in `<copy.cpp>` - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -link:#protected_derived[protected_derived]& -do_derived_shadowed(); ----- - -=== Return Value - -A class that should inherit functions as protected. - [#protected_derived-base_base_inherited] == link:#protected_derived[protected_derived]::base_base_inherited @@ -830,10 +952,10 @@ base_shadowed(); A base class to test inheritance and shadowing -[#protected_derived-derived_shadowed-0f] +[#protected_derived-derived_shadowed] == link:#protected_derived[protected_derived]::derived_shadowed -This function should be shadowed by derived classes. +This function should shadow the base class function. === Synopsis @@ -841,13 +963,13 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#base[base]& +link:#protected_derived[protected_derived]& derived_shadowed(); ---- === Return Value -A base class to test inheritance and shadowing +A class that should inherit functions as protected. [#protected_derived-do_base_base_inherited] == link:#protected_derived[protected_derived]::do_base_base_inherited @@ -868,10 +990,10 @@ do_base_base_inherited(); A second‐order base class to test indirect inheritance -[#protected_derived-do_base_inherited] -== link:#protected_derived[protected_derived]::do_base_inherited +[#protected_derived-do_derived_shadowed] +== link:#protected_derived[protected_derived]::do_derived_shadowed -This function should be inherited by derived classes. +This function should shadow the base class function. === Synopsis @@ -879,18 +1001,33 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#base[base]& -do_base_inherited(); +link:#protected_derived[protected_derived]& +do_derived_shadowed(); ---- === Return Value -A base class to test inheritance and shadowing +A class that should inherit functions as protected. -[#protected_derived-do_base_shadowed] -== link:#protected_derived[protected_derived]::do_base_shadowed +[#protected_derived-excluded_inherited] +== link:#protected_derived[protected_derived]::excluded_inherited -This function should shadow the excluded_base function. +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<copy.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +excluded_base& +excluded_inherited(); +---- + +[#protected_derived-do_base_inherited] +== link:#protected_derived[protected_derived]::do_base_inherited + +This function should be inherited by derived classes. === Synopsis @@ -899,17 +1036,17 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#base[base]& -do_base_shadowed(); +do_base_inherited(); ---- === Return Value A base class to test inheritance and shadowing -[#protected_derived-do_derived_shadowed-06] -== link:#protected_derived[protected_derived]::do_derived_shadowed +[#protected_derived-do_base_shadowed] +== link:#protected_derived[protected_derived]::do_base_shadowed -This function should be shadowed by derived classes. +This function should shadow the excluded_base function. === Synopsis @@ -918,7 +1055,7 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#base[base]& -do_derived_shadowed(); +do_base_shadowed(); ---- === Return Value @@ -955,20 +1092,5 @@ excluded_base& do_shadowed(); ---- -[#protected_derived-excluded_inherited] -== link:#protected_derived[protected_derived]::excluded_inherited - -This function should be inherited by derived classes. - -=== Synopsis - -Declared in `<copy.cpp>` - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -excluded_base& -excluded_inherited(); ----- - [.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/config/inherit-base-members/copy.html b/test-files/golden-tests/config/inherit-base-members/copy.html index 781fd9edf..4e7d73e65 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy.html +++ b/test-files/golden-tests/config/inherit-base-members/copy.html @@ -454,7 +454,7 @@

Member Functions

base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. do_base_base_inherited This function should be indirectly inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. +do_derived_shadowed This function should shadow the base class function. excluded_inherited This function should be inherited by derived classes. @@ -472,7 +472,6 @@

Protected Member Functions

do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. -do_derived_shadowed This function should be shadowed by derived classes. do_excluded_inherited This function should be inherited by derived classes. do_shadowed This function should be shadowed by derived classes. @@ -602,7 +601,7 @@

Return Value

-

derived::do_derived_shadowed

+

derived::do_derived_shadowed

This function should shadow the base class function. @@ -684,30 +683,6 @@

Synopsis

base& do_base_shadowed(); - - -
-
-

Return Value

-A base class to test inheritance and shadowing -
-
-
-
-

derived::do_derived_shadowed

-
-This function should be shadowed by derived classes. - -
-
-
-

Synopsis

-
-Declared in <copy.cpp>
-
-base&
-do_derived_shadowed();
-
 
 
@@ -786,13 +761,107 @@

Member Functions

+base_base_inherited This function should be indirectly inherited by derived classes. +base_inherited This function should be inherited by derived classes. +base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_derived_shadowed This function should shadow the base class function. +do_base_base_inherited This function should be indirectly inherited by derived classes. +do_derived_shadowed This function should shadow the base class function. +excluded_inherited This function should be inherited by derived classes. +

Protected Member Functions

+ + + + + + + + + + + + + + +
NameDescription
do_base_inherited This function should be inherited by derived classes.
do_base_shadowed This function should shadow the excluded_base function.
do_excluded_inherited This function should be inherited by derived classes.
do_shadowed This function should be shadowed by derived classes.
+ + +
+
+
+

private_derived::base_base_inherited

+
+This function should be indirectly inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <copy.cpp>
+
+base_base&
+base_base_inherited();
+
+
+
+
+
+

Return Value

+A second-order base class to test indirect inheritance +
+
+
+
+

private_derived::base_inherited

+
+This function should be inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <copy.cpp>
+
+base&
+base_inherited();
+
+
+
+
+
+

Return Value

+A base class to test inheritance and shadowing +
+
+
+
+

private_derived::base_shadowed

+
+This function should shadow the excluded_base function. + +
+
+
+

Synopsis

+
+Declared in <copy.cpp>
+
+base&
+base_shadowed();
 
+
+
+
+
+

Return Value

+A base class to test inheritance and shadowing +
@@ -820,6 +889,30 @@

Return Value

+

private_derived::do_base_base_inherited

+
+This function should be indirectly inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <copy.cpp>
+
+base_base&
+do_base_base_inherited();
+
+
+
+
+
+

Return Value

+A second-order base class to test indirect inheritance +
+
+
+

private_derived::do_derived_shadowed

This function should shadow the base class function. @@ -844,6 +937,114 @@

Return Value

+

private_derived::excluded_inherited

+
+This function should be inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <copy.cpp>
+
+excluded_base&
+excluded_inherited();
+
+
+
+
+
+
+
+

private_derived::do_base_inherited

+
+This function should be inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <copy.cpp>
+
+base&
+do_base_inherited();
+
+
+
+
+
+

Return Value

+A base class to test inheritance and shadowing +
+
+
+
+

private_derived::do_base_shadowed

+
+This function should shadow the excluded_base function. + +
+
+
+

Synopsis

+
+Declared in <copy.cpp>
+
+base&
+do_base_shadowed();
+
+
+
+
+
+

Return Value

+A base class to test inheritance and shadowing +
+
+
+
+

private_derived::do_excluded_inherited

+
+This function should be inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <copy.cpp>
+
+excluded_base&
+do_excluded_inherited();
+
+
+
+
+
+
+
+

private_derived::do_shadowed

+
+This function should be shadowed by derived classes. + +
+
+
+

Synopsis

+
+Declared in <copy.cpp>
+
+excluded_base&
+do_shadowed();
+
+
+
+
+
+
+

protected_derived

A class that should inherit functions as protected. @@ -887,8 +1088,13 @@

Member Functions

-derived_shadowed This function should shadow the base class function. -do_derived_shadowed This function should shadow the base class function. +base_base_inherited This function should be indirectly inherited by derived classes. +base_inherited This function should be inherited by derived classes. +base_shadowed This function should shadow the excluded_base function. +derived_shadowed This function should shadow the base class function. +do_base_base_inherited This function should be indirectly inherited by derived classes. +do_derived_shadowed This function should shadow the base class function. +excluded_inherited This function should be inherited by derived classes. @@ -903,69 +1109,14 @@

Protected Member Functions

-base_base_inherited This function should be indirectly inherited by derived classes. -base_inherited This function should be inherited by derived classes. -base_shadowed This function should shadow the excluded_base function. -derived_shadowed This function should be shadowed by derived classes. -do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. -do_derived_shadowed This function should be shadowed by derived classes. do_excluded_inherited This function should be inherited by derived classes. -do_shadowed This function should be shadowed by derived classes. -excluded_inherited This function should be inherited by derived classes. +do_shadowed This function should be shadowed by derived classes. -
-
-
-

protected_derived::derived_shadowed

-
-This function should shadow the base class function. - -
-
-
-

Synopsis

-
-Declared in <copy.cpp>
-
-protected_derived&
-derived_shadowed();
-
-
-
-
-
-

Return Value

-A class that should inherit functions as protected. -
-
-
-
-

protected_derived::do_derived_shadowed

-
-This function should shadow the base class function. - -
-
-
-

Synopsis

-
-Declared in <copy.cpp>
-
-protected_derived&
-do_derived_shadowed();
-
-
-
-
-
-

Return Value

-A class that should inherit functions as protected. -
@@ -1041,9 +1192,9 @@

Return Value

-

protected_derived::derived_shadowed

+

protected_derived::derived_shadowed

-This function should be shadowed by derived classes. +This function should shadow the base class function.
@@ -1052,7 +1203,7 @@

Synopsis

Declared in <copy.cpp>
-base&
+protected_derived&
 derived_shadowed();
 
 
@@ -1060,7 +1211,7 @@ 

Synopsis

Return Value

-A base class to test inheritance and shadowing +A class that should inherit functions as protected.
@@ -1089,9 +1240,9 @@

Return Value

-

protected_derived::do_base_inherited

+

protected_derived::do_derived_shadowed

-This function should be inherited by derived classes. +This function should shadow the base class function.
@@ -1100,22 +1251,22 @@

Synopsis

Declared in <copy.cpp>
-base&
-do_base_inherited();
+protected_derived&
+do_derived_shadowed();
 
 
 

Return Value

-A base class to test inheritance and shadowing +A class that should inherit functions as protected.
-

protected_derived::do_base_shadowed

+

protected_derived::excluded_inherited

-This function should shadow the excluded_base function. +This function should be inherited by derived classes.
@@ -1124,22 +1275,18 @@

Synopsis

Declared in <copy.cpp>
-base&
-do_base_shadowed();
+excluded_base&
+excluded_inherited();
 
 
 
-
-

Return Value

-A base class to test inheritance and shadowing -
-

protected_derived::do_derived_shadowed

+

protected_derived::do_base_inherited

-This function should be shadowed by derived classes. +This function should be inherited by derived classes.
@@ -1149,7 +1296,7 @@

Synopsis

Declared in <copy.cpp>
 base&
-do_derived_shadowed();
+do_base_inherited();
 
 
 
@@ -1161,9 +1308,9 @@

Return Value

-

protected_derived::do_excluded_inherited

+

protected_derived::do_base_shadowed

-This function should be inherited by derived classes. +This function should shadow the excluded_base function.
@@ -1172,18 +1319,22 @@

Synopsis

Declared in <copy.cpp>
-excluded_base&
-do_excluded_inherited();
+base&
+do_base_shadowed();
 
 
 
+
+

Return Value

+A base class to test inheritance and shadowing +
-

protected_derived::do_shadowed

+

protected_derived::do_excluded_inherited

-This function should be shadowed by derived classes. +This function should be inherited by derived classes.
@@ -1193,7 +1344,7 @@

Synopsis

Declared in <copy.cpp>
 excluded_base&
-do_shadowed();
+do_excluded_inherited();
 
 
 
@@ -1201,9 +1352,9 @@

Synopsis

-

protected_derived::excluded_inherited

+

protected_derived::do_shadowed

-This function should be inherited by derived classes. +This function should be shadowed by derived classes.
@@ -1213,7 +1364,7 @@

Synopsis

Declared in <copy.cpp>
 excluded_base&
-excluded_inherited();
+do_shadowed();
 
 
 
diff --git a/test-files/golden-tests/config/inherit-base-members/copy.xml b/test-files/golden-tests/config/inherit-base-members/copy.xml index e2a9fdb77..0f44f2ee7 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy.xml +++ b/test-files/golden-tests/config/inherit-base-members/copy.xml @@ -335,22 +335,6 @@ - - - - - - - - - - This function should be shadowed by derived classes. - - - A base class to test inheritance and shadowing - - - @@ -391,6 +375,54 @@ A class that uses private inheritance only + + + + + + + + + + This function should be indirectly inherited by derived classes. + + + A second-order base class to test indirect inheritance + + + + + + + + + + + + + This function should be inherited by derived classes. + + + A base class to test inheritance and shadowing + + + + + + + + + + + + + This function should shadow the excluded_base function. + + + A base class to test inheritance and shadowing + + + @@ -407,6 +439,22 @@ + + + + + + + + + + This function should be indirectly inherited by derived classes. + + + A second-order base class to test indirect inheritance + + + @@ -423,52 +471,91 @@ - - - - - - - - - - - - A class that should inherit functions as protected. - - - - + + - + - This function should shadow the base class function. + This function should be inherited by derived classes. + + + + + + + + + + + + + This function should be inherited by derived classes. - A class that should inherit functions as protected. + A base class to test inheritance and shadowing - - + + - + - This function should shadow the base class function. + This function should shadow the excluded_base function. - A class that should inherit functions as protected. + A base class to test inheritance and shadowing + + + + + + + + + + This function should be inherited by derived classes. + + + + + + + + + + + + + This function should be shadowed by derived classes. + + + + + + + + + + + + + + + A class that should inherit functions as protected. + + @@ -517,19 +604,19 @@ - - + + - + - This function should be shadowed by derived classes. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that should inherit functions as protected. @@ -549,24 +636,37 @@ - - + + - + - This function should be inherited by derived classes. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that should inherit functions as protected. - - + + + + + + + + + + This function should be inherited by derived classes. + + + + + @@ -574,15 +674,15 @@ - This function should shadow the excluded_base function. + This function should be inherited by derived classes. A base class to test inheritance and shadowing - - + + @@ -590,7 +690,7 @@ - This function should be shadowed by derived classes. + This function should shadow the excluded_base function. A base class to test inheritance and shadowing @@ -623,19 +723,6 @@ - - - - - - - - - - This function should be inherited by derived classes. - - - diff --git a/test-files/golden-tests/config/inherit-base-members/reference.adoc b/test-files/golden-tests/config/inherit-base-members/reference.adoc index 4970145c6..5c0ff1ade 100644 --- a/test-files/golden-tests/config/inherit-base-members/reference.adoc +++ b/test-files/golden-tests/config/inherit-base-members/reference.adoc @@ -335,8 +335,6 @@ class derived | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. -| link:#base-do_derived_shadowed[`do_derived_shadowed`] -| This function should be shadowed by derived classes. |=== [#derived-derived_shadowed] @@ -399,12 +397,32 @@ class private_derived |=== | Name | Description +| link:#base_base-base_base_inherited[`base_base_inherited`] +| This function should be indirectly inherited by derived classes. +| link:#base-base_inherited[`base_inherited`] +| This function should be inherited by derived classes. +| link:#base-base_shadowed[`base_shadowed`] +| This function should shadow the excluded_base function. | link:#private_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#private_derived-do_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. |=== +=== Protected Member Functions + +[cols=2] +|=== +| Name +| Description +| link:#base-do_base_inherited[`do_base_inherited`] +| This function should be inherited by derived classes. +| link:#base-do_base_shadowed[`do_base_shadowed`] +| This function should shadow the excluded_base function. +|=== + [#private_derived-derived_shadowed] == link:#private_derived[private_derived]::derived_shadowed @@ -477,8 +495,16 @@ class protected_derived |=== | Name | Description +| link:#base_base-base_base_inherited[`base_base_inherited`] +| This function should be indirectly inherited by derived classes. +| link:#base-base_inherited[`base_inherited`] +| This function should be inherited by derived classes. +| link:#base-base_shadowed[`base_shadowed`] +| This function should shadow the excluded_base function. | link:#protected_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#protected_derived-do_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. |=== @@ -489,22 +515,10 @@ class protected_derived |=== | Name | Description -| link:#base_base-base_base_inherited[`base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#base-base_inherited[`base_inherited`] -| This function should be inherited by derived classes. -| link:#base-base_shadowed[`base_shadowed`] -| This function should shadow the excluded_base function. -| link:#base-derived_shadowed[`derived_shadowed`] -| This function should be shadowed by derived classes. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. -| link:#base-do_derived_shadowed[`do_derived_shadowed`] -| This function should be shadowed by derived classes. |=== [#protected_derived-derived_shadowed] diff --git a/test-files/golden-tests/config/inherit-base-members/reference.html b/test-files/golden-tests/config/inherit-base-members/reference.html index 731d0faae..a58ad1a6c 100644 --- a/test-files/golden-tests/config/inherit-base-members/reference.html +++ b/test-files/golden-tests/config/inherit-base-members/reference.html @@ -422,8 +422,7 @@

Protected Member Functions

do_base_inherited This function should be inherited by derived classes. -do_base_shadowed This function should shadow the excluded_base function. -do_derived_shadowed This function should be shadowed by derived classes. +do_base_shadowed This function should shadow the excluded_base function. @@ -507,12 +506,31 @@

Member Functions

+base_base_inherited This function should be indirectly inherited by derived classes. +base_inherited This function should be inherited by derived classes. +base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. +do_base_base_inherited This function should be indirectly inherited by derived classes. do_derived_shadowed This function should shadow the base class function. +

Protected Member Functions

+ + + + + + + + + + + + +
NameDescription
do_base_inherited This function should be inherited by derived classes.
do_base_shadowed This function should shadow the excluded_base function.
+
@@ -608,7 +626,11 @@

Member Functions

+base_base_inherited This function should be indirectly inherited by derived classes. +base_inherited This function should be inherited by derived classes. +base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. +do_base_base_inherited This function should be indirectly inherited by derived classes. do_derived_shadowed This function should shadow the base class function. @@ -624,14 +646,8 @@

Protected Member Functions

-base_base_inherited This function should be indirectly inherited by derived classes. -base_inherited This function should be inherited by derived classes. -base_shadowed This function should shadow the excluded_base function. -derived_shadowed This function should be shadowed by derived classes. -do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. -do_base_shadowed This function should shadow the excluded_base function. -do_derived_shadowed This function should be shadowed by derived classes. +do_base_shadowed This function should shadow the excluded_base function. diff --git a/test-files/golden-tests/config/inherit-base-members/reference.xml b/test-files/golden-tests/config/inherit-base-members/reference.xml index 6c1d01927..7bacfd1e2 100644 --- a/test-files/golden-tests/config/inherit-base-members/reference.xml +++ b/test-files/golden-tests/config/inherit-base-members/reference.xml @@ -322,22 +322,6 @@ - - - - - - - - - - This function should be shadowed by derived classes. - - - A base class to test inheritance and shadowing - - - @@ -352,6 +336,54 @@ A class that uses private inheritance only + + + + + + + + + + This function should be indirectly inherited by derived classes. + + + A second-order base class to test indirect inheritance + + + + + + + + + + + + + This function should be inherited by derived classes. + + + A base class to test inheritance and shadowing + + + + + + + + + + + + + This function should shadow the excluded_base function. + + + A base class to test inheritance and shadowing + + + @@ -368,6 +400,22 @@ + + + + + + + + + + This function should be indirectly inherited by derived classes. + + + A second-order base class to test indirect inheritance + + + @@ -384,52 +432,52 @@ - - - - - - - - - - - - A class that should inherit functions as protected. - - - - + + - + - This function should shadow the base class function. + This function should be inherited by derived classes. - A class that should inherit functions as protected. + A base class to test inheritance and shadowing - - + + - + - This function should shadow the base class function. + This function should shadow the excluded_base function. - A class that should inherit functions as protected. + A base class to test inheritance and shadowing + + + + + + + + + + + + A class that should inherit functions as protected. + + @@ -478,19 +526,19 @@ - - + + - + - This function should be shadowed by derived classes. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that should inherit functions as protected. @@ -510,24 +558,24 @@ - - + + - + - This function should be inherited by derived classes. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that should inherit functions as protected. - - + + @@ -535,15 +583,15 @@ - This function should shadow the excluded_base function. + This function should be inherited by derived classes. A base class to test inheritance and shadowing - - + + @@ -551,7 +599,7 @@ - This function should be shadowed by derived classes. + This function should shadow the excluded_base function. A base class to test inheritance and shadowing diff --git a/test-files/golden-tests/config/inherit-base-members/skip-special.adoc b/test-files/golden-tests/config/inherit-base-members/skip-special.adoc index ce79aba4d..c84d523be 100644 --- a/test-files/golden-tests/config/inherit-base-members/skip-special.adoc +++ b/test-files/golden-tests/config/inherit-base-members/skip-special.adoc @@ -367,8 +367,6 @@ class derived | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. -| link:#base-do_derived_shadowed[`do_derived_shadowed`] -| This function should be shadowed by derived classes. | link:#derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#derived-do_shadowed[`do_shadowed`] @@ -502,10 +500,36 @@ class private_derived | Constructor should not be inherited | link:#private_derived-2destructor[`~private_derived`] [.small]#[destructor]# | Destructor should not be inherited +| link:#base_base-base_base_inherited[`base_base_inherited`] +| This function should be indirectly inherited by derived classes. +| link:#base-base_inherited[`base_inherited`] +| This function should be inherited by derived classes. +| link:#base-base_shadowed[`base_shadowed`] +| This function should shadow the excluded_base function. | link:#private_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#private_derived-do_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. +| link:#private_derived-excluded_inherited[`excluded_inherited`] +| This function should be inherited by derived classes. +|=== + +=== Protected Member Functions + +[cols=2] +|=== +| Name +| Description +| link:#base-do_base_inherited[`do_base_inherited`] +| This function should be inherited by derived classes. +| link:#base-do_base_shadowed[`do_base_shadowed`] +| This function should shadow the excluded_base function. +| link:#private_derived-do_excluded_inherited[`do_excluded_inherited`] +| This function should be inherited by derived classes. +| link:#private_derived-do_shadowed[`do_shadowed`] +| This function should be shadowed by derived classes. |=== [#private_derived-2constructor] @@ -566,6 +590,51 @@ link:#private_derived[private_derived]& do_derived_shadowed(); ---- +[#private_derived-excluded_inherited] +== link:#private_derived[private_derived]::excluded_inherited + +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<skip‐special.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +excluded_base& +excluded_inherited(); +---- + +[#private_derived-do_excluded_inherited] +== link:#private_derived[private_derived]::do_excluded_inherited + +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<skip‐special.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +excluded_base& +do_excluded_inherited(); +---- + +[#private_derived-do_shadowed] +== link:#private_derived[private_derived]::do_shadowed + +This function should be shadowed by derived classes. + +=== Synopsis + +Declared in `<skip‐special.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +excluded_base& +do_shadowed(); +---- + [#protected_derived] == protected_derived @@ -604,10 +673,20 @@ class protected_derived | Constructor should not be inherited | link:#protected_derived-2destructor[`~protected_derived`] [.small]#[destructor]# | Destructor should not be inherited +| link:#base_base-base_base_inherited[`base_base_inherited`] +| This function should be indirectly inherited by derived classes. +| link:#base-base_inherited[`base_inherited`] +| This function should be inherited by derived classes. +| link:#base-base_shadowed[`base_shadowed`] +| This function should shadow the excluded_base function. | link:#protected_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#protected_derived-do_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. +| link:#protected_derived-excluded_inherited[`excluded_inherited`] +| This function should be inherited by derived classes. |=== === Protected Member Functions @@ -616,28 +695,14 @@ class protected_derived |=== | Name | Description -| link:#base_base-base_base_inherited[`base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#base-base_inherited[`base_inherited`] -| This function should be inherited by derived classes. -| link:#base-base_shadowed[`base_shadowed`] -| This function should shadow the excluded_base function. -| link:#base-derived_shadowed[`derived_shadowed`] -| This function should be shadowed by derived classes. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. -| link:#base-do_derived_shadowed[`do_derived_shadowed`] -| This function should be shadowed by derived classes. | link:#protected_derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#protected_derived-do_shadowed[`do_shadowed`] | This function should be shadowed by derived classes. -| link:#protected_derived-excluded_inherited[`excluded_inherited`] -| This function should be inherited by derived classes. |=== [#protected_derived-2constructor] @@ -706,8 +771,8 @@ do_derived_shadowed(); Should inherit functions as protected. -[#protected_derived-do_excluded_inherited] -== link:#protected_derived[protected_derived]::do_excluded_inherited +[#protected_derived-excluded_inherited] +== link:#protected_derived[protected_derived]::excluded_inherited This function should be inherited by derived classes. @@ -718,13 +783,13 @@ Declared in `<skip‐special.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- excluded_base& -do_excluded_inherited(); +excluded_inherited(); ---- -[#protected_derived-do_shadowed] -== link:#protected_derived[protected_derived]::do_shadowed +[#protected_derived-do_excluded_inherited] +== link:#protected_derived[protected_derived]::do_excluded_inherited -This function should be shadowed by derived classes. +This function should be inherited by derived classes. === Synopsis @@ -733,13 +798,13 @@ Declared in `<skip‐special.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- excluded_base& -do_shadowed(); +do_excluded_inherited(); ---- -[#protected_derived-excluded_inherited] -== link:#protected_derived[protected_derived]::excluded_inherited +[#protected_derived-do_shadowed] +== link:#protected_derived[protected_derived]::do_shadowed -This function should be inherited by derived classes. +This function should be shadowed by derived classes. === Synopsis @@ -748,7 +813,7 @@ Declared in `<skip‐special.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- excluded_base& -excluded_inherited(); +do_shadowed(); ---- diff --git a/test-files/golden-tests/config/inherit-base-members/skip-special.html b/test-files/golden-tests/config/inherit-base-members/skip-special.html index a047bd876..85ca9fc4e 100644 --- a/test-files/golden-tests/config/inherit-base-members/skip-special.html +++ b/test-files/golden-tests/config/inherit-base-members/skip-special.html @@ -462,7 +462,6 @@

Protected Member Functions

do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. -do_derived_shadowed This function should be shadowed by derived classes. do_excluded_inherited This function should be inherited by derived classes. do_shadowed This function should be shadowed by derived classes. @@ -636,12 +635,34 @@

Member Functions

private_derived [constructor]Constructor should not be inherited ~private_derived [destructor]Destructor should not be inherited +base_base_inherited This function should be indirectly inherited by derived classes. +base_inherited This function should be inherited by derived classes. +base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_derived_shadowed This function should shadow the base class function. +do_base_base_inherited This function should be indirectly inherited by derived classes. +do_derived_shadowed This function should shadow the base class function. +excluded_inherited This function should be inherited by derived classes. +

Protected Member Functions

+ + + + + + + + + + + + + + +
NameDescription
do_base_inherited This function should be inherited by derived classes.
do_base_shadowed This function should shadow the excluded_base function.
do_excluded_inherited This function should be inherited by derived classes.
do_shadowed This function should be shadowed by derived classes.
+
@@ -718,6 +739,66 @@

Synopsis

private_derived& do_derived_shadowed(); + + +
+
+
+
+

private_derived::excluded_inherited

+
+This function should be inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <skip-special.cpp>
+
+excluded_base&
+excluded_inherited();
+
+
+
+
+
+
+
+

private_derived::do_excluded_inherited

+
+This function should be inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <skip-special.cpp>
+
+excluded_base&
+do_excluded_inherited();
+
+
+
+
+
+
+
+

private_derived::do_shadowed

+
+This function should be shadowed by derived classes. + +
+
+
+

Synopsis

+
+Declared in <skip-special.cpp>
+
+excluded_base&
+do_shadowed();
+
 
 
@@ -769,8 +850,13 @@

Member Functions

protected_derived [constructor]Constructor should not be inherited ~protected_derived [destructor]Destructor should not be inherited +base_base_inherited This function should be indirectly inherited by derived classes. +base_inherited This function should be inherited by derived classes. +base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_derived_shadowed This function should shadow the base class function. +do_base_base_inherited This function should be indirectly inherited by derived classes. +do_derived_shadowed This function should shadow the base class function. +excluded_inherited This function should be inherited by derived classes. @@ -785,17 +871,10 @@

Protected Member Functions

-base_base_inherited This function should be indirectly inherited by derived classes. -base_inherited This function should be inherited by derived classes. -base_shadowed This function should shadow the excluded_base function. -derived_shadowed This function should be shadowed by derived classes. -do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. -do_derived_shadowed This function should be shadowed by derived classes. do_excluded_inherited This function should be inherited by derived classes. -do_shadowed This function should be shadowed by derived classes. -excluded_inherited This function should be inherited by derived classes. +do_shadowed This function should be shadowed by derived classes. @@ -889,7 +968,7 @@

Return Value

-

protected_derived::do_excluded_inherited

+

protected_derived::excluded_inherited

This function should be inherited by derived classes. @@ -901,7 +980,7 @@

Synopsis

Declared in <skip-special.cpp>
 excluded_base&
-do_excluded_inherited();
+excluded_inherited();
 
 
 
@@ -909,9 +988,9 @@

Synopsis

-

protected_derived::do_shadowed

+

protected_derived::do_excluded_inherited

-This function should be shadowed by derived classes. +This function should be inherited by derived classes.
@@ -921,7 +1000,7 @@

Synopsis

Declared in <skip-special.cpp>
 excluded_base&
-do_shadowed();
+do_excluded_inherited();
 
 
 
@@ -929,9 +1008,9 @@

Synopsis

-

protected_derived::excluded_inherited

+

protected_derived::do_shadowed

-This function should be inherited by derived classes. +This function should be shadowed by derived classes.
@@ -941,7 +1020,7 @@

Synopsis

Declared in <skip-special.cpp>
 excluded_base&
-excluded_inherited();
+do_shadowed();
 
 
 
diff --git a/test-files/golden-tests/config/inherit-base-members/skip-special.xml b/test-files/golden-tests/config/inherit-base-members/skip-special.xml index bbb51ca5e..5fdea0fdd 100644 --- a/test-files/golden-tests/config/inherit-base-members/skip-special.xml +++ b/test-files/golden-tests/config/inherit-base-members/skip-special.xml @@ -314,19 +314,6 @@ - - - - - - - - - - This function should be shadowed by derived classes. - - - @@ -378,6 +365,45 @@ + + + + + + + + + + This function should be indirectly inherited by derived classes. + + + + + + + + + + + + + This function should be inherited by derived classes. + + + + + + + + + + + + + This function should shadow the excluded_base function. + + + @@ -391,6 +417,19 @@ + + + + + + + + + + This function should be indirectly inherited by derived classes. + + + @@ -404,6 +443,71 @@ + + + + + + + + + + This function should be inherited by derived classes. + + + + + + + + + + + + + This function should be inherited by derived classes. + + + + + + + + + + + + + This function should shadow the excluded_base function. + + + + + + + + + + + + + This function should be inherited by derived classes. + + + + + + + + + + + + + This function should be shadowed by derived classes. + + + @@ -434,38 +538,6 @@ - - - - - - - - - - This function should shadow the base class function. - - - Should inherit functions as protected. - - - - - - - - - - - - - This function should shadow the base class function. - - - Should inherit functions as protected. - - - @@ -505,17 +577,20 @@ - - + + - + - This function should be shadowed by derived classes. + This function should shadow the base class function. + + Should inherit functions as protected. + @@ -531,34 +606,37 @@ - - + + - + - This function should be inherited by derived classes. + This function should shadow the base class function. + + Should inherit functions as protected. + - - + + - + - This function should shadow the excluded_base function. + This function should be inherited by derived classes. - - + + @@ -566,25 +644,25 @@ - This function should be shadowed by derived classes. + This function should be inherited by derived classes. - - + + - + - This function should be inherited by derived classes. + This function should shadow the excluded_base function. - - + + @@ -592,12 +670,12 @@ - This function should be shadowed by derived classes. + This function should be inherited by derived classes. - - + + @@ -605,7 +683,7 @@ - This function should be inherited by derived classes. + This function should be shadowed by derived classes. diff --git a/test-files/golden-tests/symbols/using/using-member-function.adoc b/test-files/golden-tests/symbols/using/using-member-function.adoc index 86f6916a8..65bd1b318 100644 --- a/test-files/golden-tests/symbols/using/using-member-function.adoc +++ b/test-files/golden-tests/symbols/using/using-member-function.adoc @@ -349,8 +349,8 @@ struct U |=== | Name | Description -| link:#A-f[`f`] -| Public member function f taking a Tag<0>. +| link:#U-f-0f0[`f`] +| `f` overloads |=== === Using Declarations @@ -375,7 +375,7 @@ struct U | Bring all the A::f functions into U. | link:#U-f-0be[`f`] | Bring all the B::f functions into U. -| link:#U-f-0f[`f`] +| link:#U-f-0f7[`f`] | Bring all the C::f functions into U. | link:#U-f-009[`f`] | Bring all the D::f functions into U. @@ -399,6 +399,71 @@ struct U The documentation of this struct should include the function f twice: once in the member functions +[#U-f-0f0] +== link:#U[U]::f + +`f` overloads + +=== Synopses + +Declared in `<using‐member‐function.cpp>` + +Public member function f taking a Tag<0>. + + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +link:#A-f[f](link:#Tag[Tag<0>]); +---- + +[.small]#link:#A-f[_» more..._]# + +Public member function f taking a Tag<2>. + + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +link:#C-f[f](link:#Tag[Tag<2>]); +---- + +[.small]#link:#C-f[_» more..._]# + +[#A-f] +== link:#A[A]::f + +Public member function f taking a Tag<0>. + +=== Synopsis + +Declared in `<using‐member‐function.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f(link:#Tag[Tag<0>]); +---- + +=== Description + +That is the only member function that will be publicly accessible in U via inheritance. + +[#C-f] +== link:#C[C]::f + +Public member function f taking a Tag<2>. + +=== Synopsis + +Declared in `<using‐member‐function.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f(link:#Tag[Tag<2>]); +---- + [#U-U-0a] == link:#U[U]::U @@ -529,7 +594,7 @@ using B::f; | link:#B-f[B::f] | Protected member function f taking a Tag<1>. |=== -[#U-f-0f] +[#U-f-0f7] == link:#U[U]::f Bring all the C::f functions into U. @@ -641,17 +706,6 @@ link:#B-f[f](link:#Tag[Tag<1>]); [.small]#link:#B-f[_» more..._]# -Public member function f taking a Tag<2>. - - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -void -link:#C-f[f](link:#Tag[Tag<2>]); ----- - -[.small]#link:#C-f[_» more..._]# - Protected member function f taking a Tag<3>. @@ -678,21 +732,6 @@ void f(link:#Tag[Tag<1>]); ---- -[#C-f] -== link:#C[C]::f - -Public member function f taking a Tag<2>. - -=== Synopsis - -Declared in `<using‐member‐function.cpp>` - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -void -f(link:#Tag[Tag<2>]); ----- - [#D-f] == link:#D[D]::f diff --git a/test-files/golden-tests/symbols/using/using-member-function.html b/test-files/golden-tests/symbols/using/using-member-function.html index ffcb4752e..f096b9a2e 100644 --- a/test-files/golden-tests/symbols/using/using-member-function.html +++ b/test-files/golden-tests/symbols/using/using-member-function.html @@ -479,7 +479,7 @@

Member Functions

-f Public member function f taking a Tag<0>. +f f overloads @@ -501,7 +501,7 @@

Using Declarations

U Bring all the F::F constructors into U. f Bring all the A::f functions into U. f Bring all the B::f functions into U. -f Bring all the C::f functions into U. +f Bring all the C::f functions into U. f Bring all the D::f functions into U. f Bring all the E::f functions into U. f Bring all the F::f functions into U. @@ -531,6 +531,81 @@

Description

+

U::f

+
+f overloads + +
+
+
+

Synopses

+
+Declared in <using-member-function.cpp>
+Public member function f taking a Tag<0>. +
+void
+f(Tag<0>);
+
+
+
» more... + +Public member function f taking a Tag<2>. +
+void
+f(Tag<2>);
+
+
+
» more... + + +
+
+
+
+

A::f

+
+Public member function f taking a Tag<0>. + +
+
+
+

Synopsis

+
+Declared in <using-member-function.cpp>
+
+void
+f(Tag<0>);
+
+
+
+
+
+

Description

+

That is the only member function that will be publicly accessible in U via inheritance.

+
+
+
+
+

C::f

+
+Public member function f taking a Tag<2>. + +
+
+
+

Synopsis

+
+Declared in <using-member-function.cpp>
+
+void
+f(Tag<2>);
+
+
+
+
+
+
+

U::U

Bring all the A::A constructors into U. @@ -719,7 +794,7 @@

Introduced Symbols

-

U::f

+

U::f

Bring all the C::f functions into U. @@ -885,14 +960,6 @@

Synopses

» more... -Public member function f taking a Tag<2>. -
-void
-f(Tag<2>);
-
-
-
» more... - Protected member function f taking a Tag<3>.
 void
@@ -920,26 +987,6 @@ 

Synopsis

void f(Tag<1>); - -
-
-
-
-
-

C::f

-
-Public member function f taking a Tag<2>. - -
-
-
-

Synopsis

-
-Declared in <using-member-function.cpp>
-
-void
-f(Tag<2>);
-
 
 
diff --git a/test-files/golden-tests/symbols/using/using-member-function.xml b/test-files/golden-tests/symbols/using/using-member-function.xml index f4edc7378..785876b1d 100644 --- a/test-files/golden-tests/symbols/using/using-member-function.xml +++ b/test-files/golden-tests/symbols/using/using-member-function.xml @@ -166,6 +166,17 @@ + + + + + + + + Public member function f taking a Tag<2>. + + + @@ -279,17 +290,6 @@ - - - - - - - - Public member function f taking a Tag<2>. - - - From 7ad5f0bc1951d95c0a9149f5e6f1d6b395f5a782 Mon Sep 17 00:00:00 2001 From: Agustin Berge Date: Thu, 9 Oct 2025 16:54:02 +0200 Subject: [PATCH 3/6] test for #1025 (w/private) --- .../symbols/record/shadowing.adoc | 174 ++++++++++++ .../golden-tests/symbols/record/shadowing.cpp | 13 + .../symbols/record/shadowing.html | 247 ++++++++++++++++++ .../golden-tests/symbols/record/shadowing.xml | 33 +++ .../golden-tests/symbols/record/shadowing.yml | 1 + 5 files changed, 468 insertions(+) create mode 100644 test-files/golden-tests/symbols/record/shadowing.adoc create mode 100644 test-files/golden-tests/symbols/record/shadowing.cpp create mode 100644 test-files/golden-tests/symbols/record/shadowing.html create mode 100644 test-files/golden-tests/symbols/record/shadowing.xml create mode 100644 test-files/golden-tests/symbols/record/shadowing.yml diff --git a/test-files/golden-tests/symbols/record/shadowing.adoc b/test-files/golden-tests/symbols/record/shadowing.adoc new file mode 100644 index 000000000..8b20c1a98 --- /dev/null +++ b/test-files/golden-tests/symbols/record/shadowing.adoc @@ -0,0 +1,174 @@ += Reference +:mrdocs: + +[#index] +== Global namespace + +=== Types + +[cols=1] +|=== +| Name +| link:#Base[`Base`] +| link:#Derived[`Derived`] +|=== + +[#Base] +== Base + +=== Synopsis + +Declared in `<shadowing.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +struct Base; +---- + +=== Member Functions + +[cols=1] +|=== +| Name +| link:#Base-bar[`bar`] +| link:#Base-baz[`baz`] +| link:#Base-foo[`foo`] +|=== + +=== Derived Classes + +[cols=2] +|=== +| Name +| Description +| link:#Derived[`Derived`] +| +|=== + +[#Base-bar] +== link:#Base[Base]::bar + +=== Synopsis + +Declared in `<shadowing.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +bar(); +---- + +[#Base-baz] +== link:#Base[Base]::baz + +=== Synopsis + +Declared in `<shadowing.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +baz(); +---- + +[#Base-foo] +== link:#Base[Base]::foo + +=== Synopsis + +Declared in `<shadowing.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +foo(); +---- + +[#Derived] +== Derived + +=== Synopsis + +Declared in `<shadowing.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +struct Derived + : link:#Base[Base] +---- + +=== Base Classes + +[cols=2] +|=== +| Name +| Description +| `link:#Base[Base]` +| +|=== + +=== Member Functions + +[cols=1] +|=== +| Name +| link:#Derived-foo[`foo`] +|=== + +=== Protected Member Functions + +[cols=1] +|=== +| Name +| link:#Derived-bar[`bar`] +|=== + +=== Private Member Functions + +[cols=1] +|=== +| Name +| link:#Derived-baz[`baz`] +|=== + +[#Derived-foo] +== link:#Derived[Derived]::foo + +=== Synopsis + +Declared in `<shadowing.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +foo(); +---- + +[#Derived-bar] +== link:#Derived[Derived]::bar + +=== Synopsis + +Declared in `<shadowing.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +bar(); +---- + +[#Derived-baz] +== link:#Derived[Derived]::baz + +=== Synopsis + +Declared in `<shadowing.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +baz(); +---- + + +[.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/symbols/record/shadowing.cpp b/test-files/golden-tests/symbols/record/shadowing.cpp new file mode 100644 index 000000000..9d5dde07f --- /dev/null +++ b/test-files/golden-tests/symbols/record/shadowing.cpp @@ -0,0 +1,13 @@ +struct Base { +void foo(); +void bar(); +void baz(); +}; + +struct Derived : Base { + void foo(); +protected: + void bar(); +private: + void baz(); +}; diff --git a/test-files/golden-tests/symbols/record/shadowing.html b/test-files/golden-tests/symbols/record/shadowing.html new file mode 100644 index 000000000..c9a5e9c21 --- /dev/null +++ b/test-files/golden-tests/symbols/record/shadowing.html @@ -0,0 +1,247 @@ + + +Reference + + +
+

Reference

+
+
+

+
+

Types

+ + + + + + + + + + + +
Name
Base
Derived
+ +
+
+
+

Base

+
+
+

Synopsis

+
+Declared in <shadowing.cpp>
+
+struct Base;
+
+
+
+
+

Member Functions

+ + + + + + + + + + + + +
Name
bar
baz
foo
+ + + +
+

Derived Classes

+ + + + + + + + + + +
NameDescription
Derived +
+
+
+
+ +
+

Synopsis

+
+Declared in <shadowing.cpp>
+
+void
+bar();
+
+
+
+
+
+
+ +
+

Synopsis

+
+Declared in <shadowing.cpp>
+
+void
+baz();
+
+
+
+
+
+
+ +
+

Synopsis

+
+Declared in <shadowing.cpp>
+
+void
+foo();
+
+
+
+
+
+
+ +
+

Synopsis

+
+Declared in <shadowing.cpp>
+
+struct Derived
+    : Base
+
+
+
+
+
+

Base Classes

+ + + + + + + + + + +
NameDescription
Base
+
+

Member Functions

+ + + + + + + + + + +
Name
foo
+ + +

Protected Member Functions

+ + + + + + + + + + +
Name
bar
+ + +

Private Member Functions

+ + + + + + + + + + +
Name
baz
+ +
+
+ +
+

Synopsis

+
+Declared in <shadowing.cpp>
+
+void
+foo();
+
+
+
+
+
+
+ +
+

Synopsis

+
+Declared in <shadowing.cpp>
+
+void
+bar();
+
+
+
+
+
+
+ +
+

Synopsis

+
+Declared in <shadowing.cpp>
+
+void
+baz();
+
+
+
+
+
+ +
+
+

Created with MrDocs

+
+ + \ No newline at end of file diff --git a/test-files/golden-tests/symbols/record/shadowing.xml b/test-files/golden-tests/symbols/record/shadowing.xml new file mode 100644 index 000000000..2875b878e --- /dev/null +++ b/test-files/golden-tests/symbols/record/shadowing.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test-files/golden-tests/symbols/record/shadowing.yml b/test-files/golden-tests/symbols/record/shadowing.yml new file mode 100644 index 000000000..e331f0b8b --- /dev/null +++ b/test-files/golden-tests/symbols/record/shadowing.yml @@ -0,0 +1 @@ +extract-private: true From 20eac8164c4c5ba7811b8ab07f288f7dfe4dd79e Mon Sep 17 00:00:00 2001 From: Agustin Berge Date: Fri, 10 Oct 2025 09:46:48 +0200 Subject: [PATCH 4/6] nested --- .../Finalizers/BaseMembersFinalizer.cpp | 18 +- .../copy-dependencies.adoc | 120 +++--- .../copy-dependencies.cpp | 8 +- .../copy-dependencies.html | 105 ++--- .../copy-dependencies.xml | 142 +++---- .../config/inherit-base-members/copy.adoc | 210 +++++----- .../config/inherit-base-members/copy.cpp | 8 +- .../config/inherit-base-members/copy.html | 177 ++++---- .../config/inherit-base-members/copy.xml | 142 +++---- .../config/inherit-base-members/nested.adoc | 289 +++++++++++++ .../config/inherit-base-members/nested.cpp | 29 ++ .../config/inherit-base-members/nested.html | 388 ++++++++++++++++++ .../config/inherit-base-members/nested.xml | 156 +++++++ .../config/inherit-base-members/nested.yml | 5 + .../config/inherit-base-members/never.adoc | 32 ++ .../config/inherit-base-members/never.cpp | 8 +- .../config/inherit-base-members/never.html | 68 ++- .../config/inherit-base-members/never.xml | 8 +- .../inherit-base-members/reference.adoc | 36 +- .../config/inherit-base-members/reference.cpp | 8 +- .../inherit-base-members/reference.html | 45 +- .../config/inherit-base-members/reference.xml | 88 ++-- .../inherit-base-members/skip-special.adoc | 104 ++--- .../inherit-base-members/skip-special.cpp | 8 +- .../inherit-base-members/skip-special.html | 89 ++-- .../inherit-base-members/skip-special.xml | 118 +++--- 26 files changed, 1728 insertions(+), 681 deletions(-) create mode 100644 test-files/golden-tests/config/inherit-base-members/nested.adoc create mode 100644 test-files/golden-tests/config/inherit-base-members/nested.cpp create mode 100644 test-files/golden-tests/config/inherit-base-members/nested.html create mode 100644 test-files/golden-tests/config/inherit-base-members/nested.xml create mode 100644 test-files/golden-tests/config/inherit-base-members/nested.yml diff --git a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp index aa0389ca4..06c70d94a 100644 --- a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp +++ b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp @@ -221,10 +221,22 @@ operator()(RecordInfo& I) operator()(*baseRecord); inheritBaseMembers(I, *baseRecord, baseI.Access); } - finalizeRecords(I.Interface.Public.Records); - finalizeRecords(I.Interface.Protected.Records); - finalizeRecords(I.Interface.Private.Records); finalized_.emplace(I.id); + + auto RecordMembers = + I.Members | + std::views::filter([this](MemberInfo const& member) { + return member.Kind == InfoKind::Record; + }) | + std::ranges::views::transform(&MemberInfo::id); + for (SymbolID const& memberId: RecordMembers) + { + Info* infoPtr = corpus_.find(memberId); + MRDOCS_CHECK_OR_CONTINUE(infoPtr); + auto* record = infoPtr->asRecordPtr(); + MRDOCS_CHECK_OR_CONTINUE(record); + operator()(*record); + } } } // clang::mrdocs diff --git a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.adoc b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.adoc index c85442479..41806eeb8 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.adoc +++ b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.adoc @@ -61,8 +61,6 @@ class base | This function should shadow the excluded_base function. | link:#base-derived_shadowed[`derived_shadowed`] | This function should be shadowed by derived classes. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. |=== === Protected Member Functions @@ -71,6 +69,8 @@ class base |=== | Name | Description +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] @@ -225,6 +225,14 @@ class base_base; | Description | link:#base_base-base_base_inherited[`base_base_inherited`] | This function should be indirectly inherited by derived classes. +|=== + +=== Protected Member Functions + +[cols=2] +|=== +| Name +| Description | link:#base_base-do_base_base_inherited[`do_base_base_inherited`] | This function should be indirectly inherited by derived classes. |=== @@ -319,10 +327,6 @@ class derived | This function should shadow the excluded_base function. | link:#derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#derived-do_derived_shadowed[`do_derived_shadowed`] -| This function should shadow the base class function. | link:#derived-excluded_inherited[`excluded_inherited`] | This function should be inherited by derived classes. |=== @@ -333,10 +337,14 @@ class derived |=== | Name | Description +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. +| link:#derived-do_derived_shadowed[`do_derived_shadowed`] +| This function should shadow the base class function. | link:#derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#derived-do_shadowed[`do_shadowed`] @@ -362,10 +370,10 @@ derived_shadowed(); A class that derives from base and excluded_base -[#derived-do_derived_shadowed] -== link:#derived[derived]::do_derived_shadowed +[#derived-excluded_inherited] +== link:#derived[derived]::excluded_inherited -This function should shadow the base class function. +This function should be inherited by derived classes. === Synopsis @@ -373,18 +381,14 @@ Declared in `<copy‐dependencies.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#derived[derived]& -do_derived_shadowed(); +excluded_base& +excluded_inherited(); ---- -=== Return Value - -A class that derives from base and excluded_base - -[#derived-excluded_inherited] -== link:#derived[derived]::excluded_inherited +[#derived-do_derived_shadowed] +== link:#derived[derived]::do_derived_shadowed -This function should be inherited by derived classes. +This function should shadow the base class function. === Synopsis @@ -392,10 +396,14 @@ Declared in `<copy‐dependencies.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -excluded_base& -excluded_inherited(); +link:#derived[derived]& +do_derived_shadowed(); ---- +=== Return Value + +A class that derives from base and excluded_base + [#derived-do_excluded_inherited] == link:#derived[derived]::do_excluded_inherited @@ -456,10 +464,6 @@ class private_derived | This function should shadow the excluded_base function. | link:#private_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#private_derived-do_derived_shadowed[`do_derived_shadowed`] -| This function should shadow the base class function. | link:#private_derived-excluded_inherited[`excluded_inherited`] | This function should be inherited by derived classes. |=== @@ -470,10 +474,14 @@ class private_derived |=== | Name | Description +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. +| link:#private_derived-do_derived_shadowed[`do_derived_shadowed`] +| This function should shadow the base class function. | link:#private_derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#private_derived-do_shadowed[`do_shadowed`] @@ -499,10 +507,10 @@ derived_shadowed(); A class that uses private inheritance only -[#private_derived-do_derived_shadowed] -== link:#private_derived[private_derived]::do_derived_shadowed +[#private_derived-excluded_inherited] +== link:#private_derived[private_derived]::excluded_inherited -This function should shadow the base class function. +This function should be inherited by derived classes. === Synopsis @@ -510,18 +518,14 @@ Declared in `<copy‐dependencies.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#private_derived[private_derived]& -do_derived_shadowed(); +excluded_base& +excluded_inherited(); ---- -=== Return Value - -A class that uses private inheritance only - -[#private_derived-excluded_inherited] -== link:#private_derived[private_derived]::excluded_inherited +[#private_derived-do_derived_shadowed] +== link:#private_derived[private_derived]::do_derived_shadowed -This function should be inherited by derived classes. +This function should shadow the base class function. === Synopsis @@ -529,10 +533,14 @@ Declared in `<copy‐dependencies.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -excluded_base& -excluded_inherited(); +link:#private_derived[private_derived]& +do_derived_shadowed(); ---- +=== Return Value + +A class that uses private inheritance only + [#private_derived-do_excluded_inherited] == link:#private_derived[private_derived]::do_excluded_inherited @@ -605,10 +613,6 @@ class protected_derived | This function should shadow the excluded_base function. | link:#protected_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#protected_derived-do_derived_shadowed[`do_derived_shadowed`] -| This function should shadow the base class function. | link:#protected_derived-excluded_inherited[`excluded_inherited`] | This function should be inherited by derived classes. |=== @@ -619,10 +623,14 @@ class protected_derived |=== | Name | Description +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. +| link:#protected_derived-do_derived_shadowed[`do_derived_shadowed`] +| This function should shadow the base class function. | link:#protected_derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#protected_derived-do_shadowed[`do_shadowed`] @@ -648,10 +656,10 @@ derived_shadowed(); A class that should inherit functions as protected. -[#protected_derived-do_derived_shadowed] -== link:#protected_derived[protected_derived]::do_derived_shadowed +[#protected_derived-excluded_inherited] +== link:#protected_derived[protected_derived]::excluded_inherited -This function should shadow the base class function. +This function should be inherited by derived classes. === Synopsis @@ -659,18 +667,14 @@ Declared in `<copy‐dependencies.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#protected_derived[protected_derived]& -do_derived_shadowed(); +excluded_base& +excluded_inherited(); ---- -=== Return Value - -A class that should inherit functions as protected. - -[#protected_derived-excluded_inherited] -== link:#protected_derived[protected_derived]::excluded_inherited +[#protected_derived-do_derived_shadowed] +== link:#protected_derived[protected_derived]::do_derived_shadowed -This function should be inherited by derived classes. +This function should shadow the base class function. === Synopsis @@ -678,10 +682,14 @@ Declared in `<copy‐dependencies.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -excluded_base& -excluded_inherited(); +link:#protected_derived[protected_derived]& +do_derived_shadowed(); ---- +=== Return Value + +A class that should inherit functions as protected. + [#protected_derived-do_excluded_inherited] == link:#protected_derived[protected_derived]::do_excluded_inherited diff --git a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.cpp b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.cpp index eff6deaf5..0a5efa42c 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.cpp +++ b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.cpp @@ -21,7 +21,7 @@ class base_base { public: /// This function should be indirectly inherited by derived classes. base_base& base_base_inherited(); -public: +protected: /// This function should be indirectly inherited by derived classes. base_base& do_base_base_inherited(); }; @@ -54,7 +54,7 @@ class derived public: /// This function should shadow the base class function. derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. derived& do_derived_shadowed(); }; @@ -67,7 +67,7 @@ class protected_derived public: /// This function should shadow the base class function. protected_derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. protected_derived& do_derived_shadowed(); }; @@ -80,7 +80,7 @@ class private_derived public: /// This function should shadow the base class function. private_derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. private_derived& do_derived_shadowed(); }; diff --git a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.html b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.html index ee2a66d64..5d132faa4 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.html +++ b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.html @@ -74,8 +74,7 @@

Member Functions

base_base_inherited This function should be indirectly inherited by derived classes. base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. -derived_shadowed This function should be shadowed by derived classes. -do_base_base_inherited This function should be indirectly inherited by derived classes. +derived_shadowed This function should be shadowed by derived classes. @@ -90,6 +89,7 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. do_derived_shadowed This function should be shadowed by derived classes. @@ -285,12 +285,25 @@

Member Functions

-base_base_inherited This function should be indirectly inherited by derived classes. -do_base_base_inherited This function should be indirectly inherited by derived classes. +base_base_inherited This function should be indirectly inherited by derived classes. +

Protected Member Functions

+ + + + + + + + + + + +
NameDescription
do_base_base_inherited This function should be indirectly inherited by derived classes.
+

Derived Classes

@@ -405,8 +418,6 @@

Member Functions

base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_base_base_inherited This function should be indirectly inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. excluded_inherited This function should be inherited by derived classes. @@ -422,8 +433,10 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. +do_derived_shadowed This function should shadow the base class function. do_excluded_inherited This function should be inherited by derived classes. do_shadowed This function should be shadowed by derived classes. @@ -457,9 +470,9 @@

Return Value

-

derived::do_derived_shadowed

+

derived::excluded_inherited

-This function should shadow the base class function. +This function should be inherited by derived classes.
@@ -468,22 +481,18 @@

Synopsis

Declared in <copy-dependencies.cpp>
-derived&
-do_derived_shadowed();
+excluded_base&
+excluded_inherited();
 
 
 
-
-

Return Value

-A class that derives from base and excluded_base -
-

derived::excluded_inherited

+

derived::do_derived_shadowed

-This function should be inherited by derived classes. +This function should shadow the base class function.
@@ -492,12 +501,16 @@

Synopsis

Declared in <copy-dependencies.cpp>
-excluded_base&
-excluded_inherited();
+derived&
+do_derived_shadowed();
 
 
 
+
+

Return Value

+A class that derives from base and excluded_base +
@@ -573,8 +586,6 @@

Member Functions

base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_base_base_inherited This function should be indirectly inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. excluded_inherited This function should be inherited by derived classes. @@ -590,8 +601,10 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. +do_derived_shadowed This function should shadow the base class function. do_excluded_inherited This function should be inherited by derived classes. do_shadowed This function should be shadowed by derived classes. @@ -625,9 +638,9 @@

Return Value

-

private_derived::do_derived_shadowed

+

private_derived::excluded_inherited

-This function should shadow the base class function. +This function should be inherited by derived classes.
@@ -636,22 +649,18 @@

Synopsis

Declared in <copy-dependencies.cpp>
-private_derived&
-do_derived_shadowed();
+excluded_base&
+excluded_inherited();
 
 
 
-
-

Return Value

-A class that uses private inheritance only -
-

private_derived::excluded_inherited

+

private_derived::do_derived_shadowed

-This function should be inherited by derived classes. +This function should shadow the base class function.
@@ -660,12 +669,16 @@

Synopsis

Declared in <copy-dependencies.cpp>
-excluded_base&
-excluded_inherited();
+private_derived&
+do_derived_shadowed();
 
 
 
+
+

Return Value

+A class that uses private inheritance only +
@@ -756,8 +769,6 @@

Member Functions

base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_base_base_inherited This function should be indirectly inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. excluded_inherited This function should be inherited by derived classes. @@ -773,8 +784,10 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. +do_derived_shadowed This function should shadow the base class function. do_excluded_inherited This function should be inherited by derived classes. do_shadowed This function should be shadowed by derived classes. @@ -808,9 +821,9 @@

Return Value

-

protected_derived::do_derived_shadowed

+

protected_derived::excluded_inherited

-This function should shadow the base class function. +This function should be inherited by derived classes.
@@ -819,22 +832,18 @@

Synopsis

Declared in <copy-dependencies.cpp>
-protected_derived&
-do_derived_shadowed();
+excluded_base&
+excluded_inherited();
 
 
 
-
-

Return Value

-A class that should inherit functions as protected. -
-

protected_derived::excluded_inherited

+

protected_derived::do_derived_shadowed

-This function should be inherited by derived classes. +This function should shadow the base class function.
@@ -843,12 +852,16 @@

Synopsis

Declared in <copy-dependencies.cpp>
-excluded_base&
-excluded_inherited();
+protected_derived&
+do_derived_shadowed();
 
 
 
+
+

Return Value

+A class that should inherit functions as protected. +
diff --git a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.xml b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.xml index bb42c3471..6c0849107 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy-dependencies.xml +++ b/test-files/golden-tests/config/inherit-base-members/copy-dependencies.xml @@ -76,7 +76,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -258,53 +258,53 @@ - - + + - + - This function should be indirectly inherited by derived classes. + This function should be inherited by derived classes. - - A second-order base class to test indirect inheritance - - - + + - + - This function should shadow the base class function. + This function should be indirectly inherited by derived classes. - A class that derives from base and excluded_base + A second-order base class to test indirect inheritance - - + + - + This function should be inherited by derived classes. + + A base class to test inheritance and shadowing + - - + + @@ -312,26 +312,26 @@ - This function should be inherited by derived classes. + This function should shadow the excluded_base function. A base class to test inheritance and shadowing - - + + - + - This function should shadow the excluded_base function. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that derives from base and excluded_base @@ -439,53 +439,53 @@ - - + + - + - This function should be indirectly inherited by derived classes. + This function should be inherited by derived classes. - - A second-order base class to test indirect inheritance - - - + + - + - This function should shadow the base class function. + This function should be indirectly inherited by derived classes. - A class that uses private inheritance only + A second-order base class to test indirect inheritance - - + + - + This function should be inherited by derived classes. + + A base class to test inheritance and shadowing + - - + + @@ -493,26 +493,26 @@ - This function should be inherited by derived classes. + This function should shadow the excluded_base function. A base class to test inheritance and shadowing - - + + - + - This function should shadow the excluded_base function. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that uses private inheritance only @@ -620,53 +620,53 @@ - - + + - + - This function should be indirectly inherited by derived classes. + This function should be inherited by derived classes. - - A second-order base class to test indirect inheritance - - - + + - + - This function should shadow the base class function. + This function should be indirectly inherited by derived classes. - A class that should inherit functions as protected. + A second-order base class to test indirect inheritance - - + + - + This function should be inherited by derived classes. + + A base class to test inheritance and shadowing + - - + + @@ -674,26 +674,26 @@ - This function should be inherited by derived classes. + This function should shadow the excluded_base function. A base class to test inheritance and shadowing - - + + - + - This function should shadow the excluded_base function. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that should inherit functions as protected. diff --git a/test-files/golden-tests/config/inherit-base-members/copy.adoc b/test-files/golden-tests/config/inherit-base-members/copy.adoc index 2c2b5bc80..4f4baacdc 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy.adoc +++ b/test-files/golden-tests/config/inherit-base-members/copy.adoc @@ -61,8 +61,6 @@ class base | This function should shadow the excluded_base function. | link:#base-derived_shadowed[`derived_shadowed`] | This function should be shadowed by derived classes. -| link:#base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. |=== === Protected Member Functions @@ -71,6 +69,8 @@ class base |=== | Name | Description +| link:#base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] @@ -263,6 +263,14 @@ class base_base; | Description | link:#base_base-base_base_inherited[`base_base_inherited`] | This function should be indirectly inherited by derived classes. +|=== + +=== Protected Member Functions + +[cols=2] +|=== +| Name +| Description | link:#base_base-do_base_base_inherited[`do_base_base_inherited`] | This function should be indirectly inherited by derived classes. |=== @@ -357,10 +365,6 @@ class derived | This function should shadow the excluded_base function. | link:#derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. -| link:#derived-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#derived-do_derived_shadowed[`do_derived_shadowed`] -| This function should shadow the base class function. | link:#derived-excluded_inherited[`excluded_inherited`] | This function should be inherited by derived classes. |=== @@ -371,10 +375,14 @@ class derived |=== | Name | Description +| link:#derived-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#derived-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#derived-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. +| link:#derived-do_derived_shadowed[`do_derived_shadowed`] +| This function should shadow the base class function. | link:#derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#derived-do_shadowed[`do_shadowed`] @@ -457,10 +465,10 @@ derived_shadowed(); A class that derives from base and excluded_base -[#derived-do_base_base_inherited] -== link:#derived[derived]::do_base_base_inherited +[#derived-excluded_inherited] +== link:#derived[derived]::excluded_inherited -This function should be indirectly inherited by derived classes. +This function should be inherited by derived classes. === Synopsis @@ -468,18 +476,14 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#base_base[base_base]& -do_base_base_inherited(); +excluded_base& +excluded_inherited(); ---- -=== Return Value - -A second‐order base class to test indirect inheritance - -[#derived-do_derived_shadowed] -== link:#derived[derived]::do_derived_shadowed +[#derived-do_base_base_inherited] +== link:#derived[derived]::do_base_base_inherited -This function should shadow the base class function. +This function should be indirectly inherited by derived classes. === Synopsis @@ -487,16 +491,16 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#derived[derived]& -do_derived_shadowed(); +link:#base_base[base_base]& +do_base_base_inherited(); ---- === Return Value -A class that derives from base and excluded_base +A second‐order base class to test indirect inheritance -[#derived-excluded_inherited] -== link:#derived[derived]::excluded_inherited +[#derived-do_base_inherited] +== link:#derived[derived]::do_base_inherited This function should be inherited by derived classes. @@ -506,14 +510,18 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -excluded_base& -excluded_inherited(); +link:#base[base]& +do_base_inherited(); ---- -[#derived-do_base_inherited] -== link:#derived[derived]::do_base_inherited +=== Return Value -This function should be inherited by derived classes. +A base class to test inheritance and shadowing + +[#derived-do_base_shadowed] +== link:#derived[derived]::do_base_shadowed + +This function should shadow the excluded_base function. === Synopsis @@ -522,17 +530,17 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#base[base]& -do_base_inherited(); +do_base_shadowed(); ---- === Return Value A base class to test inheritance and shadowing -[#derived-do_base_shadowed] -== link:#derived[derived]::do_base_shadowed +[#derived-do_derived_shadowed] +== link:#derived[derived]::do_derived_shadowed -This function should shadow the excluded_base function. +This function should shadow the base class function. === Synopsis @@ -540,13 +548,13 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#base[base]& -do_base_shadowed(); +link:#derived[derived]& +do_derived_shadowed(); ---- === Return Value -A base class to test inheritance and shadowing +A class that derives from base and excluded_base [#derived-do_excluded_inherited] == link:#derived[derived]::do_excluded_inherited @@ -608,10 +616,6 @@ class private_derived | This function should shadow the excluded_base function. | link:#private_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. -| link:#private_derived-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#private_derived-do_derived_shadowed[`do_derived_shadowed`] -| This function should shadow the base class function. | link:#private_derived-excluded_inherited[`excluded_inherited`] | This function should be inherited by derived classes. |=== @@ -622,10 +626,14 @@ class private_derived |=== | Name | Description +| link:#private_derived-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#private_derived-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#private_derived-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. +| link:#private_derived-do_derived_shadowed[`do_derived_shadowed`] +| This function should shadow the base class function. | link:#private_derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#private_derived-do_shadowed[`do_shadowed`] @@ -708,10 +716,10 @@ derived_shadowed(); A class that uses private inheritance only -[#private_derived-do_base_base_inherited] -== link:#private_derived[private_derived]::do_base_base_inherited +[#private_derived-excluded_inherited] +== link:#private_derived[private_derived]::excluded_inherited -This function should be indirectly inherited by derived classes. +This function should be inherited by derived classes. === Synopsis @@ -719,18 +727,14 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#base_base[base_base]& -do_base_base_inherited(); +excluded_base& +excluded_inherited(); ---- -=== Return Value - -A second‐order base class to test indirect inheritance - -[#private_derived-do_derived_shadowed] -== link:#private_derived[private_derived]::do_derived_shadowed +[#private_derived-do_base_base_inherited] +== link:#private_derived[private_derived]::do_base_base_inherited -This function should shadow the base class function. +This function should be indirectly inherited by derived classes. === Synopsis @@ -738,16 +742,16 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#private_derived[private_derived]& -do_derived_shadowed(); +link:#base_base[base_base]& +do_base_base_inherited(); ---- === Return Value -A class that uses private inheritance only +A second‐order base class to test indirect inheritance -[#private_derived-excluded_inherited] -== link:#private_derived[private_derived]::excluded_inherited +[#private_derived-do_base_inherited] +== link:#private_derived[private_derived]::do_base_inherited This function should be inherited by derived classes. @@ -757,14 +761,18 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -excluded_base& -excluded_inherited(); +link:#base[base]& +do_base_inherited(); ---- -[#private_derived-do_base_inherited] -== link:#private_derived[private_derived]::do_base_inherited +=== Return Value -This function should be inherited by derived classes. +A base class to test inheritance and shadowing + +[#private_derived-do_base_shadowed] +== link:#private_derived[private_derived]::do_base_shadowed + +This function should shadow the excluded_base function. === Synopsis @@ -773,17 +781,17 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#base[base]& -do_base_inherited(); +do_base_shadowed(); ---- === Return Value A base class to test inheritance and shadowing -[#private_derived-do_base_shadowed] -== link:#private_derived[private_derived]::do_base_shadowed +[#private_derived-do_derived_shadowed] +== link:#private_derived[private_derived]::do_derived_shadowed -This function should shadow the excluded_base function. +This function should shadow the base class function. === Synopsis @@ -791,13 +799,13 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#base[base]& -do_base_shadowed(); +link:#private_derived[private_derived]& +do_derived_shadowed(); ---- === Return Value -A base class to test inheritance and shadowing +A class that uses private inheritance only [#private_derived-do_excluded_inherited] == link:#private_derived[private_derived]::do_excluded_inherited @@ -871,10 +879,6 @@ class protected_derived | This function should shadow the excluded_base function. | link:#protected_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. -| link:#protected_derived-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#protected_derived-do_derived_shadowed[`do_derived_shadowed`] -| This function should shadow the base class function. | link:#protected_derived-excluded_inherited[`excluded_inherited`] | This function should be inherited by derived classes. |=== @@ -885,10 +889,14 @@ class protected_derived |=== | Name | Description +| link:#protected_derived-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#protected_derived-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#protected_derived-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. +| link:#protected_derived-do_derived_shadowed[`do_derived_shadowed`] +| This function should shadow the base class function. | link:#protected_derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#protected_derived-do_shadowed[`do_shadowed`] @@ -971,10 +979,10 @@ derived_shadowed(); A class that should inherit functions as protected. -[#protected_derived-do_base_base_inherited] -== link:#protected_derived[protected_derived]::do_base_base_inherited +[#protected_derived-excluded_inherited] +== link:#protected_derived[protected_derived]::excluded_inherited -This function should be indirectly inherited by derived classes. +This function should be inherited by derived classes. === Synopsis @@ -982,18 +990,14 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#base_base[base_base]& -do_base_base_inherited(); +excluded_base& +excluded_inherited(); ---- -=== Return Value - -A second‐order base class to test indirect inheritance - -[#protected_derived-do_derived_shadowed] -== link:#protected_derived[protected_derived]::do_derived_shadowed +[#protected_derived-do_base_base_inherited] +== link:#protected_derived[protected_derived]::do_base_base_inherited -This function should shadow the base class function. +This function should be indirectly inherited by derived classes. === Synopsis @@ -1001,16 +1005,16 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#protected_derived[protected_derived]& -do_derived_shadowed(); +link:#base_base[base_base]& +do_base_base_inherited(); ---- === Return Value -A class that should inherit functions as protected. +A second‐order base class to test indirect inheritance -[#protected_derived-excluded_inherited] -== link:#protected_derived[protected_derived]::excluded_inherited +[#protected_derived-do_base_inherited] +== link:#protected_derived[protected_derived]::do_base_inherited This function should be inherited by derived classes. @@ -1020,14 +1024,18 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -excluded_base& -excluded_inherited(); +link:#base[base]& +do_base_inherited(); ---- -[#protected_derived-do_base_inherited] -== link:#protected_derived[protected_derived]::do_base_inherited +=== Return Value -This function should be inherited by derived classes. +A base class to test inheritance and shadowing + +[#protected_derived-do_base_shadowed] +== link:#protected_derived[protected_derived]::do_base_shadowed + +This function should shadow the excluded_base function. === Synopsis @@ -1036,17 +1044,17 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#base[base]& -do_base_inherited(); +do_base_shadowed(); ---- === Return Value A base class to test inheritance and shadowing -[#protected_derived-do_base_shadowed] -== link:#protected_derived[protected_derived]::do_base_shadowed +[#protected_derived-do_derived_shadowed] +== link:#protected_derived[protected_derived]::do_derived_shadowed -This function should shadow the excluded_base function. +This function should shadow the base class function. === Synopsis @@ -1054,13 +1062,13 @@ Declared in `<copy.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#base[base]& -do_base_shadowed(); +link:#protected_derived[protected_derived]& +do_derived_shadowed(); ---- === Return Value -A base class to test inheritance and shadowing +A class that should inherit functions as protected. [#protected_derived-do_excluded_inherited] == link:#protected_derived[protected_derived]::do_excluded_inherited diff --git a/test-files/golden-tests/config/inherit-base-members/copy.cpp b/test-files/golden-tests/config/inherit-base-members/copy.cpp index eff6deaf5..0a5efa42c 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy.cpp +++ b/test-files/golden-tests/config/inherit-base-members/copy.cpp @@ -21,7 +21,7 @@ class base_base { public: /// This function should be indirectly inherited by derived classes. base_base& base_base_inherited(); -public: +protected: /// This function should be indirectly inherited by derived classes. base_base& do_base_base_inherited(); }; @@ -54,7 +54,7 @@ class derived public: /// This function should shadow the base class function. derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. derived& do_derived_shadowed(); }; @@ -67,7 +67,7 @@ class protected_derived public: /// This function should shadow the base class function. protected_derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. protected_derived& do_derived_shadowed(); }; @@ -80,7 +80,7 @@ class private_derived public: /// This function should shadow the base class function. private_derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. private_derived& do_derived_shadowed(); }; diff --git a/test-files/golden-tests/config/inherit-base-members/copy.html b/test-files/golden-tests/config/inherit-base-members/copy.html index 4e7d73e65..5550bfaa0 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy.html +++ b/test-files/golden-tests/config/inherit-base-members/copy.html @@ -74,8 +74,7 @@

Member Functions

base_base_inherited This function should be indirectly inherited by derived classes. base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. -derived_shadowed This function should be shadowed by derived classes. -do_base_base_inherited This function should be indirectly inherited by derived classes. +derived_shadowed This function should be shadowed by derived classes. @@ -90,6 +89,7 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. do_derived_shadowed This function should be shadowed by derived classes. @@ -333,12 +333,25 @@

Member Functions

-base_base_inherited This function should be indirectly inherited by derived classes. -do_base_base_inherited This function should be indirectly inherited by derived classes. +base_base_inherited This function should be indirectly inherited by derived classes. +

Protected Member Functions

+ + + + + + + + + + + +
NameDescription
do_base_base_inherited This function should be indirectly inherited by derived classes.
+

Derived Classes

@@ -453,8 +466,6 @@

Member Functions

base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_base_base_inherited This function should be indirectly inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. excluded_inherited This function should be inherited by derived classes. @@ -470,8 +481,10 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. +do_derived_shadowed This function should shadow the base class function. do_excluded_inherited This function should be inherited by derived classes. do_shadowed This function should be shadowed by derived classes. @@ -577,9 +590,9 @@

Return Value

-

derived::do_base_base_inherited

+

derived::excluded_inherited

-This function should be indirectly inherited by derived classes. +This function should be inherited by derived classes.
@@ -588,22 +601,18 @@

Synopsis

Declared in <copy.cpp>
-base_base&
-do_base_base_inherited();
+excluded_base&
+excluded_inherited();
 
 
 
-
-

Return Value

-A second-order base class to test indirect inheritance -
-

derived::do_derived_shadowed

+

derived::do_base_base_inherited

-This function should shadow the base class function. +This function should be indirectly inherited by derived classes.
@@ -612,20 +621,20 @@

Synopsis

Declared in <copy.cpp>
-derived&
-do_derived_shadowed();
+base_base&
+do_base_base_inherited();
 
 
 

Return Value

-A class that derives from base and excluded_base +A second-order base class to test indirect inheritance
-

derived::excluded_inherited

+

derived::do_base_inherited

This function should be inherited by derived classes. @@ -636,18 +645,22 @@

Synopsis

Declared in <copy.cpp>
-excluded_base&
-excluded_inherited();
+base&
+do_base_inherited();
 
 
 
+
+

Return Value

+A base class to test inheritance and shadowing +
-

derived::do_base_inherited

+

derived::do_base_shadowed

-This function should be inherited by derived classes. +This function should shadow the excluded_base function.
@@ -657,7 +670,7 @@

Synopsis

Declared in <copy.cpp>
 base&
-do_base_inherited();
+do_base_shadowed();
 
 
 
@@ -669,9 +682,9 @@

Return Value

-

derived::do_base_shadowed

+

derived::do_derived_shadowed

-This function should shadow the excluded_base function. +This function should shadow the base class function.
@@ -680,15 +693,15 @@

Synopsis

Declared in <copy.cpp>
-base&
-do_base_shadowed();
+derived&
+do_derived_shadowed();
 
 
 

Return Value

-A base class to test inheritance and shadowing +A class that derives from base and excluded_base
@@ -765,8 +778,6 @@

Member Functions

base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_base_base_inherited This function should be indirectly inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. excluded_inherited This function should be inherited by derived classes. @@ -782,8 +793,10 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. +do_derived_shadowed This function should shadow the base class function. do_excluded_inherited This function should be inherited by derived classes. do_shadowed This function should be shadowed by derived classes. @@ -889,9 +902,9 @@

Return Value

-

private_derived::do_base_base_inherited

+

private_derived::excluded_inherited

-This function should be indirectly inherited by derived classes. +This function should be inherited by derived classes.
@@ -900,22 +913,18 @@

Synopsis

Declared in <copy.cpp>
-base_base&
-do_base_base_inherited();
+excluded_base&
+excluded_inherited();
 
 
 
-
-

Return Value

-A second-order base class to test indirect inheritance -
-

private_derived::do_derived_shadowed

+

private_derived::do_base_base_inherited

-This function should shadow the base class function. +This function should be indirectly inherited by derived classes.
@@ -924,20 +933,20 @@

Synopsis

Declared in <copy.cpp>
-private_derived&
-do_derived_shadowed();
+base_base&
+do_base_base_inherited();
 
 
 

Return Value

-A class that uses private inheritance only +A second-order base class to test indirect inheritance
-

private_derived::excluded_inherited

+

private_derived::do_base_inherited

This function should be inherited by derived classes. @@ -948,18 +957,22 @@

Synopsis

Declared in <copy.cpp>
-excluded_base&
-excluded_inherited();
+base&
+do_base_inherited();
 
 
 
+
+

Return Value

+A base class to test inheritance and shadowing +
-

private_derived::do_base_inherited

+

private_derived::do_base_shadowed

-This function should be inherited by derived classes. +This function should shadow the excluded_base function.
@@ -969,7 +982,7 @@

Synopsis

Declared in <copy.cpp>
 base&
-do_base_inherited();
+do_base_shadowed();
 
 
 
@@ -981,9 +994,9 @@

Return Value

-

private_derived::do_base_shadowed

+

private_derived::do_derived_shadowed

-This function should shadow the excluded_base function. +This function should shadow the base class function.
@@ -992,15 +1005,15 @@

Synopsis

Declared in <copy.cpp>
-base&
-do_base_shadowed();
+private_derived&
+do_derived_shadowed();
 
 
 

Return Value

-A base class to test inheritance and shadowing +A class that uses private inheritance only
@@ -1092,8 +1105,6 @@

Member Functions

base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_base_base_inherited This function should be indirectly inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. excluded_inherited This function should be inherited by derived classes. @@ -1109,8 +1120,10 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. +do_derived_shadowed This function should shadow the base class function. do_excluded_inherited This function should be inherited by derived classes. do_shadowed This function should be shadowed by derived classes. @@ -1216,9 +1229,9 @@

Return Value

-

protected_derived::do_base_base_inherited

+

protected_derived::excluded_inherited

-This function should be indirectly inherited by derived classes. +This function should be inherited by derived classes.
@@ -1227,22 +1240,18 @@

Synopsis

Declared in <copy.cpp>
-base_base&
-do_base_base_inherited();
+excluded_base&
+excluded_inherited();
 
 
 
-
-

Return Value

-A second-order base class to test indirect inheritance -
-

protected_derived::do_derived_shadowed

+

protected_derived::do_base_base_inherited

-This function should shadow the base class function. +This function should be indirectly inherited by derived classes.
@@ -1251,20 +1260,20 @@

Synopsis

Declared in <copy.cpp>
-protected_derived&
-do_derived_shadowed();
+base_base&
+do_base_base_inherited();
 
 
 

Return Value

-A class that should inherit functions as protected. +A second-order base class to test indirect inheritance
-

protected_derived::excluded_inherited

+

protected_derived::do_base_inherited

This function should be inherited by derived classes. @@ -1275,18 +1284,22 @@

Synopsis

Declared in <copy.cpp>
-excluded_base&
-excluded_inherited();
+base&
+do_base_inherited();
 
 
 
+
+

Return Value

+A base class to test inheritance and shadowing +
-

protected_derived::do_base_inherited

+

protected_derived::do_base_shadowed

-This function should be inherited by derived classes. +This function should shadow the excluded_base function.
@@ -1296,7 +1309,7 @@

Synopsis

Declared in <copy.cpp>
 base&
-do_base_inherited();
+do_base_shadowed();
 
 
 
@@ -1308,9 +1321,9 @@

Return Value

-

protected_derived::do_base_shadowed

+

protected_derived::do_derived_shadowed

-This function should shadow the excluded_base function. +This function should shadow the base class function.
@@ -1319,15 +1332,15 @@

Synopsis

Declared in <copy.cpp>
-base&
-do_base_shadowed();
+protected_derived&
+do_derived_shadowed();
 
 
 

Return Value

-A base class to test inheritance and shadowing +A class that should inherit functions as protected.
diff --git a/test-files/golden-tests/config/inherit-base-members/copy.xml b/test-files/golden-tests/config/inherit-base-members/copy.xml index 0f44f2ee7..ca309c2a0 100644 --- a/test-files/golden-tests/config/inherit-base-members/copy.xml +++ b/test-files/golden-tests/config/inherit-base-members/copy.xml @@ -76,7 +76,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -258,53 +258,53 @@ - - + + - + - This function should be indirectly inherited by derived classes. + This function should be inherited by derived classes. - - A second-order base class to test indirect inheritance - - - + + - + - This function should shadow the base class function. + This function should be indirectly inherited by derived classes. - A class that derives from base and excluded_base + A second-order base class to test indirect inheritance - - + + - + This function should be inherited by derived classes. + + A base class to test inheritance and shadowing + - - + + @@ -312,26 +312,26 @@ - This function should be inherited by derived classes. + This function should shadow the excluded_base function. A base class to test inheritance and shadowing - - + + - + - This function should shadow the excluded_base function. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that derives from base and excluded_base @@ -439,53 +439,53 @@ - - + + - + - This function should be indirectly inherited by derived classes. + This function should be inherited by derived classes. - - A second-order base class to test indirect inheritance - - - + + - + - This function should shadow the base class function. + This function should be indirectly inherited by derived classes. - A class that uses private inheritance only + A second-order base class to test indirect inheritance - - + + - + This function should be inherited by derived classes. + + A base class to test inheritance and shadowing + - - + + @@ -493,26 +493,26 @@ - This function should be inherited by derived classes. + This function should shadow the excluded_base function. A base class to test inheritance and shadowing - - + + - + - This function should shadow the excluded_base function. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that uses private inheritance only @@ -620,53 +620,53 @@ - - + + - + - This function should be indirectly inherited by derived classes. + This function should be inherited by derived classes. - - A second-order base class to test indirect inheritance - - - + + - + - This function should shadow the base class function. + This function should be indirectly inherited by derived classes. - A class that should inherit functions as protected. + A second-order base class to test indirect inheritance - - + + - + This function should be inherited by derived classes. + + A base class to test inheritance and shadowing + - - + + @@ -674,26 +674,26 @@ - This function should be inherited by derived classes. + This function should shadow the excluded_base function. A base class to test inheritance and shadowing - - + + - + - This function should shadow the excluded_base function. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that should inherit functions as protected. diff --git a/test-files/golden-tests/config/inherit-base-members/nested.adoc b/test-files/golden-tests/config/inherit-base-members/nested.adoc new file mode 100644 index 000000000..3016533f7 --- /dev/null +++ b/test-files/golden-tests/config/inherit-base-members/nested.adoc @@ -0,0 +1,289 @@ += Reference +:mrdocs: + +[#index] +== Global namespace + +=== Types + +[cols=1] +|=== +| Name +| link:#X[`X`] +|=== + +[#X] +== X + +=== Synopsis + +Declared in `<nested.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +struct X; +---- + +=== Types + +[cols=2] +|=== +| Name +| Description +| link:#X-base[`base`] +| A base class to test inheritance and shadowing +| link:#X-derived[`derived`] +| A class that derives from base and excluded_base +|=== + +[#X-base] +== link:#X[X]::base + +A base class to test inheritance and shadowing + +=== Synopsis + +Declared in `<nested.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +class base; +---- + +=== Member Functions + +[cols=2] +|=== +| Name +| Description +| link:#X-base-base_inherited[`base_inherited`] +| This function should be inherited by derived classes. +| link:#X-base-derived_shadowed[`derived_shadowed`] +| This function should be shadowed by derived classes. +|=== + +=== Protected Member Functions + +[cols=2] +|=== +| Name +| Description +| link:#X-base-do_base_inherited[`do_base_inherited`] +| This function should be inherited by derived classes. +| link:#X-base-do_derived_shadowed[`do_derived_shadowed`] +| This function should be shadowed by derived classes. +|=== + +=== Derived Classes + +[cols=2] +|=== +| Name +| Description +| link:#X-derived[`derived`] +| A class that derives from base and excluded_base +|=== + +[#X-base-base_inherited] +== link:#X[X]::link:#X-base[base]::base_inherited + +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<nested.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#X-base[base]& +base_inherited(); +---- + +=== Return Value + +A base class to test inheritance and shadowing + +[#X-base-derived_shadowed] +== link:#X[X]::link:#X-base[base]::derived_shadowed + +This function should be shadowed by derived classes. + +=== Synopsis + +Declared in `<nested.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#X-base[base]& +derived_shadowed(); +---- + +=== Return Value + +A base class to test inheritance and shadowing + +[#X-base-do_base_inherited] +== link:#X[X]::link:#X-base[base]::do_base_inherited + +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<nested.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#X-base[base]& +do_base_inherited(); +---- + +=== Return Value + +A base class to test inheritance and shadowing + +[#X-base-do_derived_shadowed] +== link:#X[X]::link:#X-base[base]::do_derived_shadowed + +This function should be shadowed by derived classes. + +=== Synopsis + +Declared in `<nested.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#X-base[base]& +do_derived_shadowed(); +---- + +=== Return Value + +A base class to test inheritance and shadowing + +[#X-derived] +== link:#X[X]::derived + +A class that derives from base and excluded_base + +=== Synopsis + +Declared in `<nested.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +class derived + : public link:#X-base[base] +---- + +=== Base Classes + +[cols=2] +|=== +| Name +| Description +| `link:#X-base[base]` +| A base class to test inheritance and shadowing +|=== + +=== Member Functions + +[cols=2] +|=== +| Name +| Description +| link:#X-derived-base_inherited[`base_inherited`] +| This function should be inherited by derived classes. +| link:#X-derived-derived_shadowed[`derived_shadowed`] +| This function should shadow the base class function. +|=== + +=== Protected Member Functions + +[cols=2] +|=== +| Name +| Description +| link:#X-derived-do_base_inherited[`do_base_inherited`] +| This function should be inherited by derived classes. +| link:#X-derived-do_derived_shadowed[`do_derived_shadowed`] +| This function should shadow the base class function. +|=== + +[#X-derived-base_inherited] +== link:#X[X]::link:#X-derived[derived]::base_inherited + +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<nested.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#X-base[base]& +base_inherited(); +---- + +=== Return Value + +A base class to test inheritance and shadowing + +[#X-derived-derived_shadowed] +== link:#X[X]::link:#X-derived[derived]::derived_shadowed + +This function should shadow the base class function. + +=== Synopsis + +Declared in `<nested.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#X-derived[derived]& +derived_shadowed(); +---- + +=== Return Value + +A class that derives from base and excluded_base + +[#X-derived-do_base_inherited] +== link:#X[X]::link:#X-derived[derived]::do_base_inherited + +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<nested.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#X-base[base]& +do_base_inherited(); +---- + +=== Return Value + +A base class to test inheritance and shadowing + +[#X-derived-do_derived_shadowed] +== link:#X[X]::link:#X-derived[derived]::do_derived_shadowed + +This function should shadow the base class function. + +=== Synopsis + +Declared in `<nested.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#X-derived[derived]& +do_derived_shadowed(); +---- + +=== Return Value + +A class that derives from base and excluded_base + + +[.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/config/inherit-base-members/nested.cpp b/test-files/golden-tests/config/inherit-base-members/nested.cpp new file mode 100644 index 000000000..8964f0693 --- /dev/null +++ b/test-files/golden-tests/config/inherit-base-members/nested.cpp @@ -0,0 +1,29 @@ +struct X +{ + /// A base class to test inheritance and shadowing + class base + { + public: + /// This function should be shadowed by derived classes. + base& derived_shadowed(); + /// This function should be inherited by derived classes. + base& base_inherited(); + protected: + /// This function should be shadowed by derived classes. + base& do_derived_shadowed(); + /// This function should be inherited by derived classes. + base& do_base_inherited(); + }; + + /// A class that derives from base and excluded_base + class derived + : public base + { + public: + /// This function should shadow the base class function. + derived& derived_shadowed(); + protected: + /// This function should shadow the base class function. + derived& do_derived_shadowed(); + }; +}; diff --git a/test-files/golden-tests/config/inherit-base-members/nested.html b/test-files/golden-tests/config/inherit-base-members/nested.html new file mode 100644 index 000000000..574463f79 --- /dev/null +++ b/test-files/golden-tests/config/inherit-base-members/nested.html @@ -0,0 +1,388 @@ + + +Reference + + +
+

Reference

+
+
+

+
+

Types

+ + + + + + + + + + +
Name
X
+ +
+
+
+

X

+
+
+

Synopsis

+
+Declared in <nested.cpp>
+
+struct X;
+
+
+
+
+

Types

+ + + + + + + + + + + + +
NameDescription
base A base class to test inheritance and shadowing
derived A class that derives from base and excluded_base
+ + + +
+
+
+

X::base

+
+A base class to test inheritance and shadowing + +
+
+
+

Synopsis

+
+Declared in <nested.cpp>
+
+class base;
+
+
+
+
+

Member Functions

+ + + + + + + + + + + + +
NameDescription
base_inherited This function should be inherited by derived classes.
derived_shadowed This function should be shadowed by derived classes.
+ + +

Protected Member Functions

+ + + + + + + + + + + + +
NameDescription
do_base_inherited This function should be inherited by derived classes.
do_derived_shadowed This function should be shadowed by derived classes.
+ + +
+

Derived Classes

+ + + + + + + + + + +
NameDescription
derived + A class that derives from base and excluded_base
+
+
+
+
+

X::base::base_inherited

+
+This function should be inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <nested.cpp>
+
+base&
+base_inherited();
+
+
+
+
+
+

Return Value

+A base class to test inheritance and shadowing +
+
+
+
+

X::base::derived_shadowed

+
+This function should be shadowed by derived classes. + +
+
+
+

Synopsis

+
+Declared in <nested.cpp>
+
+base&
+derived_shadowed();
+
+
+
+
+
+

Return Value

+A base class to test inheritance and shadowing +
+
+
+
+

X::base::do_base_inherited

+
+This function should be inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <nested.cpp>
+
+base&
+do_base_inherited();
+
+
+
+
+
+

Return Value

+A base class to test inheritance and shadowing +
+
+
+
+

X::base::do_derived_shadowed

+
+This function should be shadowed by derived classes. + +
+
+
+

Synopsis

+
+Declared in <nested.cpp>
+
+base&
+do_derived_shadowed();
+
+
+
+
+
+

Return Value

+A base class to test inheritance and shadowing +
+
+
+
+

X::derived

+
+A class that derives from base and excluded_base + +
+
+
+

Synopsis

+
+Declared in <nested.cpp>
+
+class derived
+    : public base
+
+
+
+
+
+

Base Classes

+ + + + + + + + + + +
NameDescription
baseA base class to test inheritance and shadowing
+
+

Member Functions

+ + + + + + + + + + + + +
NameDescription
base_inherited This function should be inherited by derived classes.
derived_shadowed This function should shadow the base class function.
+ + +

Protected Member Functions

+ + + + + + + + + + + + +
NameDescription
do_base_inherited This function should be inherited by derived classes.
do_derived_shadowed This function should shadow the base class function.
+ + +
+
+
+

X::derived::base_inherited

+
+This function should be inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <nested.cpp>
+
+base&
+base_inherited();
+
+
+
+
+
+

Return Value

+A base class to test inheritance and shadowing +
+
+
+
+

X::derived::derived_shadowed

+
+This function should shadow the base class function. + +
+
+
+

Synopsis

+
+Declared in <nested.cpp>
+
+derived&
+derived_shadowed();
+
+
+
+
+
+

Return Value

+A class that derives from base and excluded_base +
+
+
+
+

X::derived::do_base_inherited

+
+This function should be inherited by derived classes. + +
+
+
+

Synopsis

+
+Declared in <nested.cpp>
+
+base&
+do_base_inherited();
+
+
+
+
+
+

Return Value

+A base class to test inheritance and shadowing +
+
+
+
+

X::derived::do_derived_shadowed

+
+This function should shadow the base class function. + +
+
+
+

Synopsis

+
+Declared in <nested.cpp>
+
+derived&
+do_derived_shadowed();
+
+
+
+
+
+

Return Value

+A class that derives from base and excluded_base +
+
+ +
+
+

Created with MrDocs

+
+ + \ No newline at end of file diff --git a/test-files/golden-tests/config/inherit-base-members/nested.xml b/test-files/golden-tests/config/inherit-base-members/nested.xml new file mode 100644 index 000000000..c2851e93c --- /dev/null +++ b/test-files/golden-tests/config/inherit-base-members/nested.xml @@ -0,0 +1,156 @@ + + + + + + + + + + A base class to test inheritance and shadowing + + + + + + + + + + + + This function should be inherited by derived classes. + + + A base class to test inheritance and shadowing + + + + + + + + + + + + + This function should be shadowed by derived classes. + + + A base class to test inheritance and shadowing + + + + + + + + + + + + + This function should be inherited by derived classes. + + + A base class to test inheritance and shadowing + + + + + + + + + + + + + This function should be shadowed by derived classes. + + + A base class to test inheritance and shadowing + + + + + + + + + + + + A class that derives from base and excluded_base + + + + + + + + + + + + This function should be inherited by derived classes. + + + A base class to test inheritance and shadowing + + + + + + + + + + + + + This function should shadow the base class function. + + + A class that derives from base and excluded_base + + + + + + + + + + + + + This function should be inherited by derived classes. + + + A base class to test inheritance and shadowing + + + + + + + + + + + + + This function should shadow the base class function. + + + A class that derives from base and excluded_base + + + + + + + diff --git a/test-files/golden-tests/config/inherit-base-members/nested.yml b/test-files/golden-tests/config/inherit-base-members/nested.yml new file mode 100644 index 000000000..5a9766d7f --- /dev/null +++ b/test-files/golden-tests/config/inherit-base-members/nested.yml @@ -0,0 +1,5 @@ +inherit-base-members: copy-all +exclude-symbols: + - excluded_base +extract-private-bases: true +warn-no-paramdoc: false \ No newline at end of file diff --git a/test-files/golden-tests/config/inherit-base-members/never.adoc b/test-files/golden-tests/config/inherit-base-members/never.adoc index 12603fb45..266ab76ce 100644 --- a/test-files/golden-tests/config/inherit-base-members/never.adoc +++ b/test-files/golden-tests/config/inherit-base-members/never.adoc @@ -221,6 +221,14 @@ class base_base; | Description | link:#base_base-base_base_inherited[`base_base_inherited`] | This function should be indirectly inherited by derived classes. +|=== + +=== Protected Member Functions + +[cols=2] +|=== +| Name +| Description | link:#base_base-do_base_base_inherited[`do_base_base_inherited`] | This function should be indirectly inherited by derived classes. |=== @@ -309,6 +317,14 @@ class derived | Description | link:#derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. +|=== + +=== Protected Member Functions + +[cols=2] +|=== +| Name +| Description | link:#derived-do_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. |=== @@ -375,6 +391,14 @@ class private_derived | Description | link:#private_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. +|=== + +=== Protected Member Functions + +[cols=2] +|=== +| Name +| Description | link:#private_derived-do_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. |=== @@ -453,6 +477,14 @@ class protected_derived | Description | link:#protected_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. +|=== + +=== Protected Member Functions + +[cols=2] +|=== +| Name +| Description | link:#protected_derived-do_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. |=== diff --git a/test-files/golden-tests/config/inherit-base-members/never.cpp b/test-files/golden-tests/config/inherit-base-members/never.cpp index eff6deaf5..0a5efa42c 100644 --- a/test-files/golden-tests/config/inherit-base-members/never.cpp +++ b/test-files/golden-tests/config/inherit-base-members/never.cpp @@ -21,7 +21,7 @@ class base_base { public: /// This function should be indirectly inherited by derived classes. base_base& base_base_inherited(); -public: +protected: /// This function should be indirectly inherited by derived classes. base_base& do_base_base_inherited(); }; @@ -54,7 +54,7 @@ class derived public: /// This function should shadow the base class function. derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. derived& do_derived_shadowed(); }; @@ -67,7 +67,7 @@ class protected_derived public: /// This function should shadow the base class function. protected_derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. protected_derived& do_derived_shadowed(); }; @@ -80,7 +80,7 @@ class private_derived public: /// This function should shadow the base class function. private_derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. private_derived& do_derived_shadowed(); }; diff --git a/test-files/golden-tests/config/inherit-base-members/never.html b/test-files/golden-tests/config/inherit-base-members/never.html index dd80b4f49..d3a81c87c 100644 --- a/test-files/golden-tests/config/inherit-base-members/never.html +++ b/test-files/golden-tests/config/inherit-base-members/never.html @@ -283,12 +283,25 @@

Member Functions

-base_base_inherited This function should be indirectly inherited by derived classes. -do_base_base_inherited This function should be indirectly inherited by derived classes. +base_base_inherited This function should be indirectly inherited by derived classes. +

Protected Member Functions

+ + + + + + + + + + + +
NameDescription
do_base_base_inherited This function should be indirectly inherited by derived classes.
+

Derived Classes

@@ -399,12 +412,25 @@

Member Functions

-derived_shadowed This function should shadow the base class function. -do_derived_shadowed This function should shadow the base class function. +derived_shadowed This function should shadow the base class function. +

Protected Member Functions

+ + + + + + + + + + + +
NameDescription
do_derived_shadowed This function should shadow the base class function.
+
@@ -485,12 +511,25 @@

Member Functions

-derived_shadowed This function should shadow the base class function. -do_derived_shadowed This function should shadow the base class function. +derived_shadowed This function should shadow the base class function. +

Protected Member Functions

+ + + + + + + + + + + +
NameDescription
do_derived_shadowed This function should shadow the base class function.
+
@@ -586,12 +625,25 @@

Member Functions

-derived_shadowed This function should shadow the base class function. -do_derived_shadowed This function should shadow the base class function. +derived_shadowed This function should shadow the base class function. +

Protected Member Functions

+ + + + + + + + + + + +
NameDescription
do_derived_shadowed This function should shadow the base class function.
+
diff --git a/test-files/golden-tests/config/inherit-base-members/never.xml b/test-files/golden-tests/config/inherit-base-members/never.xml index f34168d4d..d0d4fa217 100644 --- a/test-files/golden-tests/config/inherit-base-members/never.xml +++ b/test-files/golden-tests/config/inherit-base-members/never.xml @@ -132,7 +132,7 @@ - + @@ -178,7 +178,7 @@ - + @@ -224,7 +224,7 @@ - + @@ -270,7 +270,7 @@ - + diff --git a/test-files/golden-tests/config/inherit-base-members/reference.adoc b/test-files/golden-tests/config/inherit-base-members/reference.adoc index 5c0ff1ade..6e7931258 100644 --- a/test-files/golden-tests/config/inherit-base-members/reference.adoc +++ b/test-files/golden-tests/config/inherit-base-members/reference.adoc @@ -61,8 +61,6 @@ class base | This function should shadow the excluded_base function. | link:#base-derived_shadowed[`derived_shadowed`] | This function should be shadowed by derived classes. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. |=== === Protected Member Functions @@ -71,6 +69,8 @@ class base |=== | Name | Description +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] @@ -225,6 +225,14 @@ class base_base; | Description | link:#base_base-base_base_inherited[`base_base_inherited`] | This function should be indirectly inherited by derived classes. +|=== + +=== Protected Member Functions + +[cols=2] +|=== +| Name +| Description | link:#base_base-do_base_base_inherited[`do_base_base_inherited`] | This function should be indirectly inherited by derived classes. |=== @@ -319,10 +327,6 @@ class derived | This function should shadow the excluded_base function. | link:#derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#derived-do_derived_shadowed[`do_derived_shadowed`] -| This function should shadow the base class function. |=== === Protected Member Functions @@ -331,10 +335,14 @@ class derived |=== | Name | Description +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. +| link:#derived-do_derived_shadowed[`do_derived_shadowed`] +| This function should shadow the base class function. |=== [#derived-derived_shadowed] @@ -405,10 +413,6 @@ class private_derived | This function should shadow the excluded_base function. | link:#private_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#private_derived-do_derived_shadowed[`do_derived_shadowed`] -| This function should shadow the base class function. |=== === Protected Member Functions @@ -417,10 +421,14 @@ class private_derived |=== | Name | Description +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. +| link:#private_derived-do_derived_shadowed[`do_derived_shadowed`] +| This function should shadow the base class function. |=== [#private_derived-derived_shadowed] @@ -503,10 +511,6 @@ class protected_derived | This function should shadow the excluded_base function. | link:#protected_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#protected_derived-do_derived_shadowed[`do_derived_shadowed`] -| This function should shadow the base class function. |=== === Protected Member Functions @@ -515,10 +519,14 @@ class protected_derived |=== | Name | Description +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. +| link:#protected_derived-do_derived_shadowed[`do_derived_shadowed`] +| This function should shadow the base class function. |=== [#protected_derived-derived_shadowed] diff --git a/test-files/golden-tests/config/inherit-base-members/reference.cpp b/test-files/golden-tests/config/inherit-base-members/reference.cpp index eff6deaf5..0a5efa42c 100644 --- a/test-files/golden-tests/config/inherit-base-members/reference.cpp +++ b/test-files/golden-tests/config/inherit-base-members/reference.cpp @@ -21,7 +21,7 @@ class base_base { public: /// This function should be indirectly inherited by derived classes. base_base& base_base_inherited(); -public: +protected: /// This function should be indirectly inherited by derived classes. base_base& do_base_base_inherited(); }; @@ -54,7 +54,7 @@ class derived public: /// This function should shadow the base class function. derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. derived& do_derived_shadowed(); }; @@ -67,7 +67,7 @@ class protected_derived public: /// This function should shadow the base class function. protected_derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. protected_derived& do_derived_shadowed(); }; @@ -80,7 +80,7 @@ class private_derived public: /// This function should shadow the base class function. private_derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. private_derived& do_derived_shadowed(); }; diff --git a/test-files/golden-tests/config/inherit-base-members/reference.html b/test-files/golden-tests/config/inherit-base-members/reference.html index a58ad1a6c..7daa4f9ad 100644 --- a/test-files/golden-tests/config/inherit-base-members/reference.html +++ b/test-files/golden-tests/config/inherit-base-members/reference.html @@ -74,8 +74,7 @@

Member Functions

base_base_inherited This function should be indirectly inherited by derived classes. base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. -derived_shadowed This function should be shadowed by derived classes. -do_base_base_inherited This function should be indirectly inherited by derived classes. +derived_shadowed This function should be shadowed by derived classes. @@ -90,6 +89,7 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. do_derived_shadowed This function should be shadowed by derived classes. @@ -285,12 +285,25 @@

Member Functions

-base_base_inherited This function should be indirectly inherited by derived classes. -do_base_base_inherited This function should be indirectly inherited by derived classes. +base_base_inherited This function should be indirectly inherited by derived classes. +

Protected Member Functions

+ + + + + + + + + + + +
NameDescription
do_base_base_inherited This function should be indirectly inherited by derived classes.
+

Derived Classes

@@ -404,9 +417,7 @@

Member Functions

base_base_inherited This function should be indirectly inherited by derived classes. base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. -derived_shadowed This function should shadow the base class function. -do_base_base_inherited This function should be indirectly inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. +derived_shadowed This function should shadow the base class function. @@ -421,8 +432,10 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. -do_base_shadowed This function should shadow the excluded_base function. +do_base_shadowed This function should shadow the excluded_base function. +do_derived_shadowed This function should shadow the base class function. @@ -509,9 +522,7 @@

Member Functions

base_base_inherited This function should be indirectly inherited by derived classes. base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. -derived_shadowed This function should shadow the base class function. -do_base_base_inherited This function should be indirectly inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. +derived_shadowed This function should shadow the base class function. @@ -526,8 +537,10 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. -do_base_shadowed This function should shadow the excluded_base function. +do_base_shadowed This function should shadow the excluded_base function. +do_derived_shadowed This function should shadow the base class function. @@ -629,9 +642,7 @@

Member Functions

base_base_inherited This function should be indirectly inherited by derived classes. base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. -derived_shadowed This function should shadow the base class function. -do_base_base_inherited This function should be indirectly inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. +derived_shadowed This function should shadow the base class function. @@ -646,8 +657,10 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. -do_base_shadowed This function should shadow the excluded_base function. +do_base_shadowed This function should shadow the excluded_base function. +do_derived_shadowed This function should shadow the base class function. diff --git a/test-files/golden-tests/config/inherit-base-members/reference.xml b/test-files/golden-tests/config/inherit-base-members/reference.xml index 7bacfd1e2..6a981d1bd 100644 --- a/test-files/golden-tests/config/inherit-base-members/reference.xml +++ b/test-files/golden-tests/config/inherit-base-members/reference.xml @@ -76,7 +76,7 @@ - + @@ -164,7 +164,7 @@ - + @@ -258,7 +258,7 @@ - + @@ -274,24 +274,24 @@ - - + + - + - This function should shadow the base class function. + This function should be inherited by derived classes. - A class that derives from base and excluded_base + A base class to test inheritance and shadowing - - + + @@ -299,26 +299,26 @@ - This function should be inherited by derived classes. + This function should shadow the excluded_base function. A base class to test inheritance and shadowing - - + + - + - This function should shadow the excluded_base function. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that derives from base and excluded_base @@ -400,7 +400,7 @@ - + @@ -416,24 +416,24 @@ - - + + - + - This function should shadow the base class function. + This function should be inherited by derived classes. - A class that uses private inheritance only + A base class to test inheritance and shadowing - - + + @@ -441,26 +441,26 @@ - This function should be inherited by derived classes. + This function should shadow the excluded_base function. A base class to test inheritance and shadowing - - + + - + - This function should shadow the excluded_base function. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that uses private inheritance only @@ -542,7 +542,7 @@ - + @@ -558,24 +558,24 @@ - - + + - + - This function should shadow the base class function. + This function should be inherited by derived classes. - A class that should inherit functions as protected. + A base class to test inheritance and shadowing - - + + @@ -583,26 +583,26 @@ - This function should be inherited by derived classes. + This function should shadow the excluded_base function. A base class to test inheritance and shadowing - - + + - + - This function should shadow the excluded_base function. + This function should shadow the base class function. - A base class to test inheritance and shadowing + A class that should inherit functions as protected. diff --git a/test-files/golden-tests/config/inherit-base-members/skip-special.adoc b/test-files/golden-tests/config/inherit-base-members/skip-special.adoc index c84d523be..6a92af9ab 100644 --- a/test-files/golden-tests/config/inherit-base-members/skip-special.adoc +++ b/test-files/golden-tests/config/inherit-base-members/skip-special.adoc @@ -63,8 +63,6 @@ class base | This function should shadow the excluded_base function. | link:#base-derived_shadowed[`derived_shadowed`] | This function should be shadowed by derived classes. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. |=== === Protected Member Functions @@ -73,6 +71,8 @@ class base |=== | Name | Description +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] @@ -233,6 +233,14 @@ class base_base; | Destructor should not be inherited | link:#base_base-base_base_inherited[`base_base_inherited`] | This function should be indirectly inherited by derived classes. +|=== + +=== Protected Member Functions + +[cols=2] +|=== +| Name +| Description | link:#base_base-do_base_base_inherited[`do_base_base_inherited`] | This function should be indirectly inherited by derived classes. |=== @@ -349,10 +357,6 @@ class derived | This function should shadow the excluded_base function. | link:#derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#derived-do_derived_shadowed[`do_derived_shadowed`] -| This function should shadow the base class function. | link:#derived-excluded_inherited[`excluded_inherited`] | This function should be inherited by derived classes. |=== @@ -363,10 +367,14 @@ class derived |=== | Name | Description +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. +| link:#derived-do_derived_shadowed[`do_derived_shadowed`] +| This function should shadow the base class function. | link:#derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#derived-do_shadowed[`do_shadowed`] @@ -416,10 +424,10 @@ link:#derived[derived]& derived_shadowed(); ---- -[#derived-do_derived_shadowed] -== link:#derived[derived]::do_derived_shadowed +[#derived-excluded_inherited] +== link:#derived[derived]::excluded_inherited -This function should shadow the base class function. +This function should be inherited by derived classes. === Synopsis @@ -427,14 +435,14 @@ Declared in `<skip‐special.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#derived[derived]& -do_derived_shadowed(); +excluded_base& +excluded_inherited(); ---- -[#derived-excluded_inherited] -== link:#derived[derived]::excluded_inherited +[#derived-do_derived_shadowed] +== link:#derived[derived]::do_derived_shadowed -This function should be inherited by derived classes. +This function should shadow the base class function. === Synopsis @@ -442,8 +450,8 @@ Declared in `<skip‐special.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -excluded_base& -excluded_inherited(); +link:#derived[derived]& +do_derived_shadowed(); ---- [#derived-do_excluded_inherited] @@ -508,10 +516,6 @@ class private_derived | This function should shadow the excluded_base function. | link:#private_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#private_derived-do_derived_shadowed[`do_derived_shadowed`] -| This function should shadow the base class function. | link:#private_derived-excluded_inherited[`excluded_inherited`] | This function should be inherited by derived classes. |=== @@ -522,10 +526,14 @@ class private_derived |=== | Name | Description +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. +| link:#private_derived-do_derived_shadowed[`do_derived_shadowed`] +| This function should shadow the base class function. | link:#private_derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#private_derived-do_shadowed[`do_shadowed`] @@ -575,10 +583,10 @@ link:#private_derived[private_derived]& derived_shadowed(); ---- -[#private_derived-do_derived_shadowed] -== link:#private_derived[private_derived]::do_derived_shadowed +[#private_derived-excluded_inherited] +== link:#private_derived[private_derived]::excluded_inherited -This function should shadow the base class function. +This function should be inherited by derived classes. === Synopsis @@ -586,14 +594,14 @@ Declared in `<skip‐special.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#private_derived[private_derived]& -do_derived_shadowed(); +excluded_base& +excluded_inherited(); ---- -[#private_derived-excluded_inherited] -== link:#private_derived[private_derived]::excluded_inherited +[#private_derived-do_derived_shadowed] +== link:#private_derived[private_derived]::do_derived_shadowed -This function should be inherited by derived classes. +This function should shadow the base class function. === Synopsis @@ -601,8 +609,8 @@ Declared in `<skip‐special.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -excluded_base& -excluded_inherited(); +link:#private_derived[private_derived]& +do_derived_shadowed(); ---- [#private_derived-do_excluded_inherited] @@ -681,10 +689,6 @@ class protected_derived | This function should shadow the excluded_base function. | link:#protected_derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. -| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] -| This function should be indirectly inherited by derived classes. -| link:#protected_derived-do_derived_shadowed[`do_derived_shadowed`] -| This function should shadow the base class function. | link:#protected_derived-excluded_inherited[`excluded_inherited`] | This function should be inherited by derived classes. |=== @@ -695,10 +699,14 @@ class protected_derived |=== | Name | Description +| link:#base_base-do_base_base_inherited[`do_base_base_inherited`] +| This function should be indirectly inherited by derived classes. | link:#base-do_base_inherited[`do_base_inherited`] | This function should be inherited by derived classes. | link:#base-do_base_shadowed[`do_base_shadowed`] | This function should shadow the excluded_base function. +| link:#protected_derived-do_derived_shadowed[`do_derived_shadowed`] +| This function should shadow the base class function. | link:#protected_derived-do_excluded_inherited[`do_excluded_inherited`] | This function should be inherited by derived classes. | link:#protected_derived-do_shadowed[`do_shadowed`] @@ -752,10 +760,10 @@ derived_shadowed(); Should inherit functions as protected. -[#protected_derived-do_derived_shadowed] -== link:#protected_derived[protected_derived]::do_derived_shadowed +[#protected_derived-excluded_inherited] +== link:#protected_derived[protected_derived]::excluded_inherited -This function should shadow the base class function. +This function should be inherited by derived classes. === Synopsis @@ -763,18 +771,14 @@ Declared in `<skip‐special.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#protected_derived[protected_derived]& -do_derived_shadowed(); +excluded_base& +excluded_inherited(); ---- -=== Return Value - -Should inherit functions as protected. - -[#protected_derived-excluded_inherited] -== link:#protected_derived[protected_derived]::excluded_inherited +[#protected_derived-do_derived_shadowed] +== link:#protected_derived[protected_derived]::do_derived_shadowed -This function should be inherited by derived classes. +This function should shadow the base class function. === Synopsis @@ -782,10 +786,14 @@ Declared in `<skip‐special.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -excluded_base& -excluded_inherited(); +link:#protected_derived[protected_derived]& +do_derived_shadowed(); ---- +=== Return Value + +Should inherit functions as protected. + [#protected_derived-do_excluded_inherited] == link:#protected_derived[protected_derived]::do_excluded_inherited diff --git a/test-files/golden-tests/config/inherit-base-members/skip-special.cpp b/test-files/golden-tests/config/inherit-base-members/skip-special.cpp index b8ac9b61d..d4cd97243 100644 --- a/test-files/golden-tests/config/inherit-base-members/skip-special.cpp +++ b/test-files/golden-tests/config/inherit-base-members/skip-special.cpp @@ -36,7 +36,7 @@ class base_base { /// This function should be indirectly inherited by derived classes. base_base& base_base_inherited(); -public: +protected: /// This function should be indirectly inherited by derived classes. base_base& do_base_base_inherited(); }; @@ -79,7 +79,7 @@ class derived /// This function should shadow the base class function. derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. derived& do_derived_shadowed(); }; @@ -98,7 +98,7 @@ class protected_derived /// This function should shadow the base class function. protected_derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. protected_derived& do_derived_shadowed(); }; @@ -116,7 +116,7 @@ class private_derived /// This function should shadow the base class function. private_derived& derived_shadowed(); -public: +protected: /// This function should shadow the base class function. private_derived& do_derived_shadowed(); }; diff --git a/test-files/golden-tests/config/inherit-base-members/skip-special.html b/test-files/golden-tests/config/inherit-base-members/skip-special.html index 85ca9fc4e..63f270bfb 100644 --- a/test-files/golden-tests/config/inherit-base-members/skip-special.html +++ b/test-files/golden-tests/config/inherit-base-members/skip-special.html @@ -72,8 +72,7 @@

Member Functions

base_base_inherited This function should be indirectly inherited by derived classes. base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. -derived_shadowed This function should be shadowed by derived classes. -do_base_base_inherited This function should be indirectly inherited by derived classes. +derived_shadowed This function should be shadowed by derived classes. @@ -88,6 +87,7 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. do_derived_shadowed This function should be shadowed by derived classes. @@ -295,12 +295,25 @@

Member Functions

base_base [constructor]Constructor should not be inherited ~base_base [destructor]Destructor should not be inherited -base_base_inherited This function should be indirectly inherited by derived classes. -do_base_base_inherited This function should be indirectly inherited by derived classes. +base_base_inherited This function should be indirectly inherited by derived classes. +

Protected Member Functions

+ + + + + + + + + + + +
NameDescription
do_base_base_inherited This function should be indirectly inherited by derived classes.
+

Derived Classes

@@ -443,8 +456,6 @@

Member Functions

base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_base_base_inherited This function should be indirectly inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. excluded_inherited This function should be inherited by derived classes. @@ -460,8 +471,10 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. +do_derived_shadowed This function should shadow the base class function. do_excluded_inherited This function should be inherited by derived classes. do_shadowed This function should be shadowed by derived classes. @@ -529,9 +542,9 @@

Synopsis

-

derived::do_derived_shadowed

+

derived::excluded_inherited

-This function should shadow the base class function. +This function should be inherited by derived classes.
@@ -540,8 +553,8 @@

Synopsis

Declared in <skip-special.cpp>
-derived&
-do_derived_shadowed();
+excluded_base&
+excluded_inherited();
 
 
 
@@ -549,9 +562,9 @@

Synopsis

-

derived::excluded_inherited

+

derived::do_derived_shadowed

-This function should be inherited by derived classes. +This function should shadow the base class function.
@@ -560,8 +573,8 @@

Synopsis

Declared in <skip-special.cpp>
-excluded_base&
-excluded_inherited();
+derived&
+do_derived_shadowed();
 
 
 
@@ -639,8 +652,6 @@

Member Functions

base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_base_base_inherited This function should be indirectly inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. excluded_inherited This function should be inherited by derived classes. @@ -656,8 +667,10 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. +do_derived_shadowed This function should shadow the base class function. do_excluded_inherited This function should be inherited by derived classes. do_shadowed This function should be shadowed by derived classes. @@ -725,9 +738,9 @@

Synopsis

-

private_derived::do_derived_shadowed

+

private_derived::excluded_inherited

-This function should shadow the base class function. +This function should be inherited by derived classes.
@@ -736,8 +749,8 @@

Synopsis

Declared in <skip-special.cpp>
-private_derived&
-do_derived_shadowed();
+excluded_base&
+excluded_inherited();
 
 
 
@@ -745,9 +758,9 @@

Synopsis

-

private_derived::excluded_inherited

+

private_derived::do_derived_shadowed

-This function should be inherited by derived classes. +This function should shadow the base class function.
@@ -756,8 +769,8 @@

Synopsis

Declared in <skip-special.cpp>
-excluded_base&
-excluded_inherited();
+private_derived&
+do_derived_shadowed();
 
 
 
@@ -854,8 +867,6 @@

Member Functions

base_inherited This function should be inherited by derived classes. base_shadowed This function should shadow the excluded_base function. derived_shadowed This function should shadow the base class function. -do_base_base_inherited This function should be indirectly inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. excluded_inherited This function should be inherited by derived classes. @@ -871,8 +882,10 @@

Protected Member Functions

+do_base_base_inherited This function should be indirectly inherited by derived classes. do_base_inherited This function should be inherited by derived classes. do_base_shadowed This function should shadow the excluded_base function. +do_derived_shadowed This function should shadow the base class function. do_excluded_inherited This function should be inherited by derived classes. do_shadowed This function should be shadowed by derived classes. @@ -944,9 +957,9 @@

Return Value

-

protected_derived::do_derived_shadowed

+

protected_derived::excluded_inherited

-This function should shadow the base class function. +This function should be inherited by derived classes.
@@ -955,22 +968,18 @@

Synopsis

Declared in <skip-special.cpp>
-protected_derived&
-do_derived_shadowed();
+excluded_base&
+excluded_inherited();
 
 
 
-
-

Return Value

-Should inherit functions as protected. -
-

protected_derived::excluded_inherited

+

protected_derived::do_derived_shadowed

-This function should be inherited by derived classes. +This function should shadow the base class function.
@@ -979,12 +988,16 @@

Synopsis

Declared in <skip-special.cpp>
-excluded_base&
-excluded_inherited();
+protected_derived&
+do_derived_shadowed();
 
 
 
+
+

Return Value

+Should inherit functions as protected. +
diff --git a/test-files/golden-tests/config/inherit-base-members/skip-special.xml b/test-files/golden-tests/config/inherit-base-members/skip-special.xml index 5fdea0fdd..baa98f1b4 100644 --- a/test-files/golden-tests/config/inherit-base-members/skip-special.xml +++ b/test-files/golden-tests/config/inherit-base-members/skip-special.xml @@ -75,7 +75,7 @@ - + @@ -159,7 +159,7 @@ - + @@ -249,37 +249,37 @@ - - + + - + - This function should be indirectly inherited by derived classes. + This function should be inherited by derived classes. - - + + - + - This function should shadow the base class function. + This function should be indirectly inherited by derived classes. - - + + - + @@ -288,8 +288,8 @@ - - + + @@ -297,20 +297,20 @@ - This function should be inherited by derived classes. + This function should shadow the excluded_base function. - - + + - + - This function should shadow the excluded_base function. + This function should shadow the base class function. @@ -417,37 +417,37 @@ - - + + - + - This function should be indirectly inherited by derived classes. + This function should be inherited by derived classes. - - + + - + - This function should shadow the base class function. + This function should be indirectly inherited by derived classes. - - + + - + @@ -456,8 +456,8 @@ - - + + @@ -465,20 +465,20 @@ - This function should be inherited by derived classes. + This function should shadow the excluded_base function. - - + + - + - This function should shadow the excluded_base function. + This function should shadow the base class function. @@ -593,40 +593,37 @@ - - + + - + - This function should be indirectly inherited by derived classes. + This function should be inherited by derived classes. - - + + - + - This function should shadow the base class function. + This function should be indirectly inherited by derived classes. - - Should inherit functions as protected. - - - + + - + @@ -635,8 +632,8 @@ - - + + @@ -644,21 +641,24 @@ - This function should be inherited by derived classes. + This function should shadow the excluded_base function. - - + + - + - This function should shadow the excluded_base function. + This function should shadow the base class function. + + Should inherit functions as protected. + From bcae45a5628dcf3ba04b644537ae116b035df97e Mon Sep 17 00:00:00 2001 From: Agustin Berge Date: Fri, 10 Oct 2025 14:51:30 +0200 Subject: [PATCH 5/6] overloads --- include/mrdocs/Metadata/Info/Overloads.hpp | 2 + src/lib/CorpusImpl.cpp | 12 +- .../Finalizers/OverloadsFinalizer.cpp | 209 ++++++++++++++---- .../Finalizers/OverloadsFinalizer.hpp | 6 + .../Metadata/Finalizers/RecordsFinalizer.cpp | 9 +- src/lib/Metadata/Info/Overloads.cpp | 1 + .../symbols/using/using-member-function.adoc | 99 +++------ .../symbols/using/using-member-function.html | 109 +++------ .../symbols/using/using-member-function.xml | 22 +- 9 files changed, 255 insertions(+), 214 deletions(-) diff --git a/include/mrdocs/Metadata/Info/Overloads.hpp b/include/mrdocs/Metadata/Info/Overloads.hpp index d88e3f79b..172e06972 100644 --- a/include/mrdocs/Metadata/Info/Overloads.hpp +++ b/include/mrdocs/Metadata/Info/Overloads.hpp @@ -34,6 +34,8 @@ struct OverloadsInfo final /// Info about the return type of this function. Polymorphic ReturnType = std::nullopt; + StorageClassKind StorageClass = StorageClassKind::None; + //-------------------------------------------- explicit OverloadsInfo(SymbolID const& ID) noexcept diff --git a/src/lib/CorpusImpl.cpp b/src/lib/CorpusImpl.cpp index 25b258082..29f68da15 100644 --- a/src/lib/CorpusImpl.cpp +++ b/src/lib/CorpusImpl.cpp @@ -1019,17 +1019,17 @@ CorpusImpl::finalize() finalizer.build(); } - // Finalizing record interfaces + if (config->overloads) { - report::debug(" - Finalizing records"); - RecordsFinalizer finalizer(*this); + report::debug(" - Finalizing overloads"); + OverloadsFinalizer finalizer(*this); finalizer.build(); } - if (config->overloads) + // Finalizing record interfaces { - report::debug(" - Finalizing overloads"); - OverloadsFinalizer finalizer(*this); + report::debug(" - Finalizing records"); + RecordsFinalizer finalizer(*this); finalizer.build(); } diff --git a/src/lib/Metadata/Finalizers/OverloadsFinalizer.cpp b/src/lib/Metadata/Finalizers/OverloadsFinalizer.cpp index eca1d1096..bda22cb28 100644 --- a/src/lib/Metadata/Finalizers/OverloadsFinalizer.cpp +++ b/src/lib/Metadata/Finalizers/OverloadsFinalizer.cpp @@ -32,38 +32,24 @@ findBaseClassPermutation( auto const baseRecord = baseInfo->asRecordPtr(); MRDOCS_CHECK_OR_CONTINUE(baseRecord); - // Iterate over all function tranches - RecordTranche* tranchesPtrs[] = { - &baseRecord->Interface.Public, - &baseRecord->Interface.Protected, - &baseRecord->Interface.Private, - }; - for (RecordTranche* tranchePtr: tranchesPtrs) + // Find an overload set that's a permutation of the same + // name functions + for (auto const& baseMember: baseRecord->Members) { - std::vector* trancheFunctionPtrs[] = { - &tranchePtr->Functions, - &tranchePtr->StaticFunctions - }; - for (std::vector* trancheFunctionsPtr: - trancheFunctionPtrs) - { - // Find an overload set that's a permutation of the same - // name functions - for (SymbolID const& baseID: *trancheFunctionsPtr) - { - Info* baseFuncMember = corpus.find(baseID); - MRDOCS_CHECK_OR_CONTINUE(baseFuncMember); - MRDOCS_CHECK_OR_CONTINUE(baseFuncMember->isOverloads()); - auto* overloads = baseFuncMember->asOverloadsPtr(); - MRDOCS_CHECK_OR_CONTINUE(overloads); - // Does this overload set have the same functions - MRDOCS_CHECK_OR_CONTINUE( - std::ranges::is_permutation( - overloads->Members, - sameNameFunctionIds)); - return overloads->id; - } - } + MRDOCS_CHECK_OR_CONTINUE(baseMember.Kind == InfoKind::Function); + + SymbolID const& baseID = baseMember.id; + Info* baseFuncMember = corpus.find(baseID); + MRDOCS_CHECK_OR_CONTINUE(baseFuncMember); + MRDOCS_CHECK_OR_CONTINUE(baseFuncMember->isOverloads()); + auto* overloads = baseFuncMember->asOverloadsPtr(); + MRDOCS_CHECK_OR_CONTINUE(overloads); + // Does this overload set have the same functions + MRDOCS_CHECK_OR_CONTINUE( + std::ranges::is_permutation( + overloads->Members, + sameNameFunctionIds)); + return overloads->id; } } return SymbolID::invalid; @@ -115,7 +101,7 @@ findIntroducedNamespacePermutation( void OverloadsFinalizer:: -foldOverloads(SymbolID const& contextId, std::vector& functionIds, bool isStatic) +foldOverloads(SymbolID const& contextId, std::vector& functionIds, AccessKind access, bool isStatic) { Info* contextInfo = corpus_.find(contextId); MRDOCS_CHECK_OR(contextInfo); @@ -232,11 +218,144 @@ foldOverloads(SymbolID const& contextId, std::vector& functionIds, boo } } +// FIXME: dedup with above +void +OverloadsFinalizer:: +foldOverloads(SymbolID const& contextId, std::vector& members) +{ + Info* contextInfo = corpus_.find(contextId); + MRDOCS_CHECK_OR(contextInfo); + + for (auto memberIt = members.begin(); + memberIt != members.end(); + ++memberIt) + { + MRDOCS_CHECK_OR_CONTINUE(memberIt->Kind == InfoKind::Function); + + // Get the FunctionInfo for the current id + auto infoPtr = corpus_.find(memberIt->id); + MRDOCS_CHECK_OR_CONTINUE(infoPtr); + auto* function = infoPtr->asFunctionPtr(); + MRDOCS_CHECK_OR_CONTINUE(function); + + AccessKind const access = function->Access; + bool const isStatic = (function->StorageClass == StorageClassKind::Static); + + // Check if the FunctionInfo is unique + std::ranges::subrange otherMembers( + std::next(memberIt), + members.end()); + auto isSameNameFunction = [&](MemberInfo const& other) { + MRDOCS_CHECK_OR(other.EffectiveAccess == access, false); + MRDOCS_CHECK_OR(other.Kind == InfoKind::Function, false); + SymbolID const& otherID = other.id; + auto const otherFunctionPtr = corpus_.find(otherID); + MRDOCS_CHECK_OR(otherFunctionPtr, false); + FunctionInfo const& otherInfo = otherFunctionPtr->asFunction(); + return function->Name == otherInfo.Name && (isStatic == (otherInfo.StorageClass == StorageClassKind::Static)) ; + }; + auto sameNameIt = std::ranges:: + find_if(otherMembers, isSameNameFunction); + bool const isUniqueFunction = sameNameIt == otherMembers.end(); + MRDOCS_CHECK_OR_CONTINUE(!isUniqueFunction); + + // Create a list of FunctionInfo overloads + auto sameNameMembersView = + std::ranges::subrange(memberIt, members.end()) | + std::views::filter(isSameNameFunction) | + std::views::transform(&MemberInfo::id); + SmallVector sameNameMembers( + sameNameMembersView.begin(), + sameNameMembersView.end()); + + // Check if any of the base classes has an overload set + // with the exact same function ids. If that's the case, + // the function will create a reference. + if (contextInfo->isRecord()) + { + SymbolID equivalentOverloadsID = findBaseClassPermutation( + contextId, + corpus_, + sameNameMembers); + if (equivalentOverloadsID) + { + MRDOCS_ASSERT(corpus_.find(equivalentOverloadsID)); + // This base overload set becomes the + // representation in the record + memberIt->id = equivalentOverloadsID; + auto const offset = memberIt - members.begin(); + // Erase the other function ids with + // the same name + for (SymbolID sameNameId: sameNameMembers) + { + std::erase_if(members, [&](MemberInfo const& member) { return member.id == sameNameId; }); + } + memberIt = members.begin() + offset; + continue; + } + } + + // Check if the namespace of the name introduced in the + // using declaration has an overload set with the + // exact same function ids. If that's the case, + // the function will create a reference. + if (contextInfo->isUsing()) + { + SymbolID introducedOverloadsID = findIntroducedNamespacePermutation( + contextId, + corpus_, + sameNameMembers); + if (introducedOverloadsID) + { + MRDOCS_ASSERT(corpus_.find(introducedOverloadsID)); + // This base overload set becomes the + // representation in the record + memberIt->id = introducedOverloadsID; + auto const offset = memberIt - members.begin(); + // Erase the other function ids with + // the same name + for (SymbolID sameNameId: sameNameMembers) + { + std::erase_if(members, [&](MemberInfo const& member) { return member.id == sameNameId; }); + } + memberIt = members.begin() + offset; + continue; + } + } + + // FunctionInfo is not unique and there's no equivalent + // overload set in base classes, so we merge it with the + // other FunctionInfos into a new OverloadsInfo + OverloadsInfo O(contextId, function->Name, access, isStatic); + addMember(O, *function); + memberIt->id = O.id; + auto const itOffset = memberIt - members.begin(); + for (auto otherIt = memberIt + 1; otherIt != members.end(); ++otherIt) + { + MRDOCS_CHECK_OR_CONTINUE(otherIt->EffectiveAccess == access); + MRDOCS_CHECK_OR_CONTINUE(otherIt->Kind == InfoKind::Function); + + Info* otherInfoPtr = corpus_.find(otherIt->id); + MRDOCS_CHECK_OR_CONTINUE(otherInfoPtr); + auto* otherFunction = otherInfoPtr->asFunctionPtr(); + MRDOCS_CHECK_OR_CONTINUE(otherFunction); + MRDOCS_CHECK_OR_CONTINUE(isStatic == (otherFunction->StorageClass == StorageClassKind::Static)); + if (function->Name == otherFunction->Name) + { + addMember(O, *otherFunction); + otherIt = std::prev(members.erase(otherIt)); + } + } + memberIt = members.begin() + itOffset; + MRDOCS_ASSERT(corpus_.info_.emplace(std::make_unique(std::move(O))).second); + } +} + namespace { -template +template R> constexpr auto -toDerivedView(std::vector const& ids, CorpusImpl& c) +toDerivedView(R&& ids, CorpusImpl& c) { return ids | std::views::transform([&c](SymbolID const& id) { @@ -264,7 +383,7 @@ operator()(NamespaceInfo& I) MRDOCS_CHECK_OR(!finalized_.contains(I.id)); finalized_.emplace(I.id); - foldOverloads(I.id, I.Members.Functions, true); + foldOverloads(I.id, I.Members.Functions, AccessKind::None, true); for (RecordInfo& RI: toDerivedView(I.Members.Records, corpus_)) { operator()(RI); @@ -301,19 +420,11 @@ operator()(RecordInfo& I) MRDOCS_CHECK_OR(baseRecord); operator()(*baseRecord); } - foldOverloads(I.id, I.Interface.Public.Functions, false); - foldOverloads(I.id, I.Interface.Protected.Functions, false); - foldOverloads(I.id, I.Interface.Private.Functions, false); - foldOverloads(I.id, I.Interface.Public.StaticFunctions, true); - foldOverloads(I.id, I.Interface.Protected.StaticFunctions, true); - foldOverloads(I.id, I.Interface.Private.StaticFunctions, true); - for (RecordInfo& RI: toDerivedView(I.Interface.Public.Records, corpus_)) { - operator()(RI); - } - for (RecordInfo& RI: toDerivedView(I.Interface.Protected.Records, corpus_)) { - operator()(RI); - } - for (RecordInfo& RI: toDerivedView(I.Interface.Private.Records, corpus_)) { + + foldOverloads(I.id, I.Members); + + auto&& memberIds = std::ranges::views::transform(I.Members, &MemberInfo::id); + for (RecordInfo& RI: toDerivedView(memberIds, corpus_)) { operator()(RI); } } @@ -340,7 +451,7 @@ operator()(UsingInfo& I) } break; } - foldOverloads(I.id, I.ShadowDeclarations, true); + foldOverloads(I.id, I.ShadowDeclarations, AccessKind::None, true); } } // clang::mrdocs diff --git a/src/lib/Metadata/Finalizers/OverloadsFinalizer.hpp b/src/lib/Metadata/Finalizers/OverloadsFinalizer.hpp index 189417538..575354fee 100644 --- a/src/lib/Metadata/Finalizers/OverloadsFinalizer.hpp +++ b/src/lib/Metadata/Finalizers/OverloadsFinalizer.hpp @@ -33,8 +33,14 @@ class OverloadsFinalizer foldOverloads( SymbolID const& contextId, std::vector& functionIds, + AccessKind access, bool isStatic); + void + foldOverloads( + SymbolID const& contextId, + std::vector& members); + public: OverloadsFinalizer(CorpusImpl& corpus) : corpus_(corpus) diff --git a/src/lib/Metadata/Finalizers/RecordsFinalizer.cpp b/src/lib/Metadata/Finalizers/RecordsFinalizer.cpp index 09316db18..b56974ec4 100644 --- a/src/lib/Metadata/Finalizers/RecordsFinalizer.cpp +++ b/src/lib/Metadata/Finalizers/RecordsFinalizer.cpp @@ -89,7 +89,14 @@ addMember(RecordTranche& T, Info const& Member) } if (auto const* U = Member.asOverloadsPtr()) { - addMember(T.Functions, *U); + if (U->StorageClass != StorageClassKind::Static) + { + addMember(T.Functions, *U); + } + else + { + addMember(T.StaticFunctions, *U); + } return; } report::error("Cannot push {} of type {} into tranche", diff --git a/src/lib/Metadata/Info/Overloads.cpp b/src/lib/Metadata/Info/Overloads.cpp index fb27ba057..4eb57ce10 100644 --- a/src/lib/Metadata/Info/Overloads.cpp +++ b/src/lib/Metadata/Info/Overloads.cpp @@ -26,6 +26,7 @@ OverloadsInfo::OverloadsInfo(SymbolID const &Parent, std::string_view Name, : InfoCommonBase(SymbolID::createFromString(std::format( "{}-{}-{}-{}", toBase16(Parent), Name, toString(access), isStatic))) { this->Parent = Parent; + if (isStatic) this->StorageClass = StorageClassKind::Static; } void diff --git a/test-files/golden-tests/symbols/using/using-member-function.adoc b/test-files/golden-tests/symbols/using/using-member-function.adoc index 65bd1b318..86f6916a8 100644 --- a/test-files/golden-tests/symbols/using/using-member-function.adoc +++ b/test-files/golden-tests/symbols/using/using-member-function.adoc @@ -349,8 +349,8 @@ struct U |=== | Name | Description -| link:#U-f-0f0[`f`] -| `f` overloads +| link:#A-f[`f`] +| Public member function f taking a Tag<0>. |=== === Using Declarations @@ -375,7 +375,7 @@ struct U | Bring all the A::f functions into U. | link:#U-f-0be[`f`] | Bring all the B::f functions into U. -| link:#U-f-0f7[`f`] +| link:#U-f-0f[`f`] | Bring all the C::f functions into U. | link:#U-f-009[`f`] | Bring all the D::f functions into U. @@ -399,71 +399,6 @@ struct U The documentation of this struct should include the function f twice: once in the member functions -[#U-f-0f0] -== link:#U[U]::f - -`f` overloads - -=== Synopses - -Declared in `<using‐member‐function.cpp>` - -Public member function f taking a Tag<0>. - - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -void -link:#A-f[f](link:#Tag[Tag<0>]); ----- - -[.small]#link:#A-f[_» more..._]# - -Public member function f taking a Tag<2>. - - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -void -link:#C-f[f](link:#Tag[Tag<2>]); ----- - -[.small]#link:#C-f[_» more..._]# - -[#A-f] -== link:#A[A]::f - -Public member function f taking a Tag<0>. - -=== Synopsis - -Declared in `<using‐member‐function.cpp>` - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -void -f(link:#Tag[Tag<0>]); ----- - -=== Description - -That is the only member function that will be publicly accessible in U via inheritance. - -[#C-f] -== link:#C[C]::f - -Public member function f taking a Tag<2>. - -=== Synopsis - -Declared in `<using‐member‐function.cpp>` - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -void -f(link:#Tag[Tag<2>]); ----- - [#U-U-0a] == link:#U[U]::U @@ -594,7 +529,7 @@ using B::f; | link:#B-f[B::f] | Protected member function f taking a Tag<1>. |=== -[#U-f-0f7] +[#U-f-0f] == link:#U[U]::f Bring all the C::f functions into U. @@ -706,6 +641,17 @@ link:#B-f[f](link:#Tag[Tag<1>]); [.small]#link:#B-f[_» more..._]# +Public member function f taking a Tag<2>. + + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +link:#C-f[f](link:#Tag[Tag<2>]); +---- + +[.small]#link:#C-f[_» more..._]# + Protected member function f taking a Tag<3>. @@ -732,6 +678,21 @@ void f(link:#Tag[Tag<1>]); ---- +[#C-f] +== link:#C[C]::f + +Public member function f taking a Tag<2>. + +=== Synopsis + +Declared in `<using‐member‐function.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +void +f(link:#Tag[Tag<2>]); +---- + [#D-f] == link:#D[D]::f diff --git a/test-files/golden-tests/symbols/using/using-member-function.html b/test-files/golden-tests/symbols/using/using-member-function.html index f096b9a2e..ffcb4752e 100644 --- a/test-files/golden-tests/symbols/using/using-member-function.html +++ b/test-files/golden-tests/symbols/using/using-member-function.html @@ -479,7 +479,7 @@

Member Functions

-f f overloads +f Public member function f taking a Tag<0>. @@ -501,7 +501,7 @@

Using Declarations

U Bring all the F::F constructors into U. f Bring all the A::f functions into U. f Bring all the B::f functions into U. -f Bring all the C::f functions into U. +f Bring all the C::f functions into U. f Bring all the D::f functions into U. f Bring all the E::f functions into U. f Bring all the F::f functions into U. @@ -531,81 +531,6 @@

Description

-

U::f

-
-f overloads - -
-
-
-

Synopses

-
-Declared in <using-member-function.cpp>
-Public member function f taking a Tag<0>. -
-void
-f(Tag<0>);
-
-
-
» more... - -Public member function f taking a Tag<2>. -
-void
-f(Tag<2>);
-
-
-
» more... - - -
-
-
-
-

A::f

-
-Public member function f taking a Tag<0>. - -
-
-
-

Synopsis

-
-Declared in <using-member-function.cpp>
-
-void
-f(Tag<0>);
-
-
-
-
-
-

Description

-

That is the only member function that will be publicly accessible in U via inheritance.

-
-
-
-
-

C::f

-
-Public member function f taking a Tag<2>. - -
-
-
-

Synopsis

-
-Declared in <using-member-function.cpp>
-
-void
-f(Tag<2>);
-
-
-
-
-
-
-

U::U

Bring all the A::A constructors into U. @@ -794,7 +719,7 @@

Introduced Symbols

-

U::f

+

U::f

Bring all the C::f functions into U. @@ -960,6 +885,14 @@

Synopses

» more... +Public member function f taking a Tag<2>. +
+void
+f(Tag<2>);
+
+
+
» more... + Protected member function f taking a Tag<3>.
 void
@@ -987,6 +920,26 @@ 

Synopsis

void f(Tag<1>); + +
+
+
+
+
+

C::f

+
+Public member function f taking a Tag<2>. + +
+
+
+

Synopsis

+
+Declared in <using-member-function.cpp>
+
+void
+f(Tag<2>);
+
 
 
diff --git a/test-files/golden-tests/symbols/using/using-member-function.xml b/test-files/golden-tests/symbols/using/using-member-function.xml index 785876b1d..f4edc7378 100644 --- a/test-files/golden-tests/symbols/using/using-member-function.xml +++ b/test-files/golden-tests/symbols/using/using-member-function.xml @@ -166,17 +166,6 @@ - - - - - - - - Public member function f taking a Tag<2>. - - - @@ -290,6 +279,17 @@ + + + + + + + + Public member function f taking a Tag<2>. + + + From 62f89ad919ebcfa40c7e77e9ed59c1bd71e64b0d Mon Sep 17 00:00:00 2001 From: Agustin Berge Date: Fri, 10 Oct 2025 16:15:28 +0200 Subject: [PATCH 6/6] sort members --- .../Finalizers/SortMembersFinalizer.cpp | 65 ++----- .../Finalizers/SortMembersFinalizer.hpp | 5 +- .../brief-from-function-class.adoc | 38 ++--- .../brief-from-function-class.html | 36 ++-- .../brief-from-function-class.xml | 30 ++-- .../param-from-function-class.adoc | 68 ++++---- .../param-from-function-class.html | 66 ++++---- .../param-from-function-class.xml | 60 +++---- .../config/inherit-base-members/nested.adoc | 92 +++++----- .../config/inherit-base-members/nested.html | 80 ++++----- .../config/inherit-base-members/nested.xml | 60 +++---- .../sort-members-by/sort-members-by-name.adoc | 34 ++-- .../sort-members-by/sort-members-by-name.html | 46 ++--- .../sort-members-by/sort-members-by-name.xml | 16 +- .../sort-namespace-members-by-location.adoc | 34 ++-- .../sort-namespace-members-by-location.html | 46 ++--- .../sort-namespace-members-by-location.xml | 16 +- .../sort-namespace-members-by-name.adoc | 34 ++-- .../sort-namespace-members-by-name.html | 46 ++--- .../sort-namespace-members-by-name.xml | 16 +- .../config/sort/sort-members.adoc | 34 ++-- .../config/sort/sort-members.html | 46 ++--- .../golden-tests/config/sort/sort-members.xml | 16 +- .../golden-tests/config/sort/unordered.adoc | 34 ++-- .../golden-tests/config/sort/unordered.html | 46 ++--- .../golden-tests/config/sort/unordered.xml | 16 +- .../javadoc/copydoc/operator-param.adoc | 22 +-- .../javadoc/copydoc/operator-param.html | 22 +-- .../javadoc/copydoc/operator-param.xml | 16 +- .../javadoc/copydoc/qualified.adoc | 68 ++++---- .../javadoc/copydoc/qualified.html | 68 ++++---- .../javadoc/copydoc/qualified.xml | 38 ++--- .../golden-tests/symbols/function/sfinae.xml | 4 +- .../symbols/overloads/overloads-brief.adoc | 24 +-- .../symbols/overloads/overloads-brief.html | 24 +-- .../symbols/overloads/overloads-brief.xml | 20 +-- .../class-template-specializations-1.adoc | 112 ++++++------ .../class-template-specializations-1.html | 160 +++++++++--------- .../class-template-specializations-1.xml | 56 +++--- .../symbols/record/conditional-explicit.adoc | 28 +-- .../symbols/record/conditional-explicit.html | 28 +-- .../symbols/record/conditional-explicit.xml | 16 +- 42 files changed, 871 insertions(+), 915 deletions(-) diff --git a/src/lib/Metadata/Finalizers/SortMembersFinalizer.cpp b/src/lib/Metadata/Finalizers/SortMembersFinalizer.cpp index 3045ab1bd..632a2c257 100644 --- a/src/lib/Metadata/Finalizers/SortMembersFinalizer.cpp +++ b/src/lib/Metadata/Finalizers/SortMembersFinalizer.cpp @@ -267,51 +267,33 @@ sortMembers(std::vector& ids) void SortMembersFinalizer:: -sortMembers(NamespaceTranche& T) +sortMembers(std::vector& members) { - sortMembers(T.Namespaces); - sortMembers(T.NamespaceAliases); - sortMembers(T.Typedefs); - sortMembers(T.Records); - sortMembers(T.Enums); - sortMembers(T.Functions); - sortMembers(T.Variables); - sortMembers(T.Concepts); - sortMembers(T.Guides); - sortMembers(T.Usings); + SymbolIDCompareFn const pred{corpus_}; + std::ranges::sort(members, pred, &MemberInfo::id); } void SortMembersFinalizer:: -sortMembers(RecordTranche& T) +sortMembers(NamespaceTranche& T) { + sortMembers(T.Namespaces); sortMembers(T.NamespaceAliases); sortMembers(T.Typedefs); sortMembers(T.Records); sortMembers(T.Enums); sortMembers(T.Functions); - sortMembers(T.StaticFunctions); sortMembers(T.Variables); - sortMembers(T.StaticVariables); sortMembers(T.Concepts); sortMembers(T.Guides); sortMembers(T.Usings); } -void -SortMembersFinalizer:: -sortMembers(RecordInterface& I) -{ - sortMembers(I.Public); - sortMembers(I.Protected); - sortMembers(I.Private); -} - namespace { -template +template R> constexpr auto -toDerivedView(std::vector const& ids, CorpusImpl& c) +toDerivedView(R&& ids, CorpusImpl& c) { return ids | std::views::transform([&c](SymbolID const& id) { @@ -361,43 +343,20 @@ operator()(RecordInfo& I) // Sort members of all tranches if sorting is enabled for records if (corpus_.config->sortMembers) { - sortMembers(I.Interface); + sortMembers(I.Members); } // Recursively sort members of child records and overloads - for (RecordInfo& RI: toDerivedView(I.Interface.Public.Records, corpus_)) - { - operator()(RI); - } - for (RecordInfo& RI: toDerivedView(I.Interface.Protected.Records, corpus_)) - { - operator()(RI); - } - for (RecordInfo& RI: toDerivedView(I.Interface.Private.Records, corpus_)) - { - operator()(RI); - } - for (OverloadsInfo& RI: toDerivedView(I.Interface.Public.Functions, corpus_)) - { - operator()(RI); - } - for (OverloadsInfo& RI: toDerivedView(I.Interface.Protected.Functions, corpus_)) - { - operator()(RI); - } - for (OverloadsInfo& RI: toDerivedView(I.Interface.Private.Functions, corpus_)) - { - operator()(RI); - } - for (OverloadsInfo& RI: toDerivedView(I.Interface.Public.StaticFunctions, corpus_)) + auto&& memberIds = allMembers(I); + for (RecordInfo& RI: toDerivedView(memberIds, corpus_)) { operator()(RI); } - for (OverloadsInfo& RI: toDerivedView(I.Interface.Protected.StaticFunctions, corpus_)) + for (OverloadsInfo& RI: toDerivedView(memberIds, corpus_)) { operator()(RI); } - for (OverloadsInfo& RI: toDerivedView(I.Interface.Private.StaticFunctions, corpus_)) + for (OverloadsInfo& RI: toDerivedView(memberIds, corpus_)) { operator()(RI); } diff --git a/src/lib/Metadata/Finalizers/SortMembersFinalizer.hpp b/src/lib/Metadata/Finalizers/SortMembersFinalizer.hpp index be01754d7..62836b9ad 100644 --- a/src/lib/Metadata/Finalizers/SortMembersFinalizer.hpp +++ b/src/lib/Metadata/Finalizers/SortMembersFinalizer.hpp @@ -32,10 +32,7 @@ class SortMembersFinalizer sortMembers(std::vector& ids); void - sortMembers(RecordInterface& I); - - void - sortMembers(RecordTranche& I); + sortMembers(std::vector& members); void sortMembers(NamespaceTranche& I); diff --git a/test-files/golden-tests/config/auto-function-metadata/brief-from-function-class.adoc b/test-files/golden-tests/config/auto-function-metadata/brief-from-function-class.adoc index 37c4a3747..1be136b12 100644 --- a/test-files/golden-tests/config/auto-function-metadata/brief-from-function-class.adoc +++ b/test-files/golden-tests/config/auto-function-metadata/brief-from-function-class.adoc @@ -102,35 +102,35 @@ link:#X-2constructor-06[X](link:#X[X]&& other) = default; [.small]#link:#X-2constructor-06[_» more..._]# -Construct from `int` +Construct from `A` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#X-2constructor-07[X](int value); +link:#X-2constructor-0b[X](link:#A[A] const& value); ---- -[.small]#link:#X-2constructor-07[_» more..._]# +[.small]#link:#X-2constructor-0b[_» more..._]# Construct from `A` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#X-2constructor-0b[X](link:#A[A] const& value); +link:#X-2constructor-00[X](link:#A[A]&& value); ---- -[.small]#link:#X-2constructor-0b[_» more..._]# +[.small]#link:#X-2constructor-00[_» more..._]# -Construct from `A` +Construct from `int` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#X-2constructor-00[X](link:#A[A]&& value); +link:#X-2constructor-07[X](int value); ---- -[.small]#link:#X-2constructor-00[_» more..._]# +[.small]#link:#X-2constructor-07[_» more..._]# [#X-2constructor-0e8] == link:#X[X]::X @@ -197,10 +197,10 @@ X(link:#X[X]&& other) = default; | The object to move construct from |=== -[#X-2constructor-07] +[#X-2constructor-0b] == link:#X[X]::X -Construct from `int` +Construct from `A` === Synopsis @@ -208,7 +208,7 @@ Declared in `<brief‐from‐function‐class.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -X(int value); +X(link:#A[A] const& value); ---- === Parameters @@ -218,10 +218,10 @@ X(int value); | Name | Description | *value* -| The value to construct from +| The object to copy construct from |=== -[#X-2constructor-0b] +[#X-2constructor-00] == link:#X[X]::X Construct from `A` @@ -232,7 +232,7 @@ Declared in `<brief‐from‐function‐class.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -X(link:#A[A] const& value); +X(link:#A[A]&& value); ---- === Parameters @@ -242,13 +242,13 @@ X(link:#A[A] const& value); | Name | Description | *value* -| The object to copy construct from +| The object to move construct from |=== -[#X-2constructor-00] +[#X-2constructor-07] == link:#X[X]::X -Construct from `A` +Construct from `int` === Synopsis @@ -256,7 +256,7 @@ Declared in `<brief‐from‐function‐class.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -X(link:#A[A]&& value); +X(int value); ---- === Parameters @@ -266,7 +266,7 @@ X(link:#A[A]&& value); | Name | Description | *value* -| The object to move construct from +| The value to construct from |=== [#X-2destructor] diff --git a/test-files/golden-tests/config/auto-function-metadata/brief-from-function-class.html b/test-files/golden-tests/config/auto-function-metadata/brief-from-function-class.html index c805d70c3..dc362e323 100644 --- a/test-files/golden-tests/config/auto-function-metadata/brief-from-function-class.html +++ b/test-files/golden-tests/config/auto-function-metadata/brief-from-function-class.html @@ -120,13 +120,6 @@

Synopses

» more... -Construct from int -
-X(int value);
-
-
-
» more... - Construct from A
 X(A const& value);
@@ -141,6 +134,13 @@ 

Synopses

» more... +Construct from int +
+X(int value);
+
+
+
» more... +
@@ -240,9 +240,9 @@

Parameters

-

X::X

+

X::X

-Construct from int +Construct from A
@@ -251,7 +251,7 @@

Synopsis

Declared in <brief-from-function-class.cpp>
-X(int value);
+X(A const& value);
 
 
 
@@ -268,7 +268,7 @@

Parameters

value -The value to construct from +The object to copy construct from @@ -276,7 +276,7 @@

Parameters

-

X::X

+

X::X

Construct from A @@ -287,7 +287,7 @@

Synopsis

Declared in <brief-from-function-class.cpp>
-X(A const& value);
+X(A&& value);
 
 
 
@@ -304,7 +304,7 @@

Parameters

value -The object to copy construct from +The object to move construct from @@ -312,9 +312,9 @@

Parameters

-

X::X

+

X::X

-Construct from A +Construct from int
@@ -323,7 +323,7 @@

Synopsis

Declared in <brief-from-function-class.cpp>
-X(A&& value);
+X(int value);
 
 
 
@@ -340,7 +340,7 @@

Parameters

value -The object to move construct from +The value to construct from diff --git a/test-files/golden-tests/config/auto-function-metadata/brief-from-function-class.xml b/test-files/golden-tests/config/auto-function-metadata/brief-from-function-class.xml index b5be0885a..36278331b 100644 --- a/test-files/golden-tests/config/auto-function-metadata/brief-from-function-class.xml +++ b/test-files/golden-tests/config/auto-function-metadata/brief-from-function-class.xml @@ -66,21 +66,6 @@ - - - - - - - - Construct from - int - - - The value to construct from - - - @@ -115,6 +100,21 @@ + + + + + + + + Construct from + int + + + The value to construct from + + + diff --git a/test-files/golden-tests/config/auto-function-metadata/param-from-function-class.adoc b/test-files/golden-tests/config/auto-function-metadata/param-from-function-class.adoc index 9d407284c..09a4a6c29 100644 --- a/test-files/golden-tests/config/auto-function-metadata/param-from-function-class.adoc +++ b/test-files/golden-tests/config/auto-function-metadata/param-from-function-class.adoc @@ -85,35 +85,35 @@ link:#X-2constructor-06[X](link:#X[X]&& other); [.small]#link:#X-2constructor-06[_» more..._]# -Construct from `int` +Construct from `A` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#X-2constructor-07[X](int value); +link:#X-2constructor-0b[X](link:#A[A] const& value); ---- -[.small]#link:#X-2constructor-07[_» more..._]# +[.small]#link:#X-2constructor-0b[_» more..._]# Construct from `A` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#X-2constructor-0b[X](link:#A[A] const& value); +link:#X-2constructor-00[X](link:#A[A]&& value); ---- -[.small]#link:#X-2constructor-0b[_» more..._]# +[.small]#link:#X-2constructor-00[_» more..._]# -Construct from `A` +Construct from `int` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#X-2constructor-00[X](link:#A[A]&& value); +link:#X-2constructor-07[X](int value); ---- -[.small]#link:#X-2constructor-00[_» more..._]# +[.small]#link:#X-2constructor-07[_» more..._]# [#X-2constructor-0e] == link:#X[X]::X @@ -163,10 +163,10 @@ X(link:#X[X]&& other); | The object to move construct from |=== -[#X-2constructor-07] +[#X-2constructor-0b] == link:#X[X]::X -Construct from `int` +Construct from `A` === Synopsis @@ -174,7 +174,7 @@ Declared in `<param‐from‐function‐class.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -X(int value); +X(link:#A[A] const& value); ---- === Parameters @@ -184,10 +184,10 @@ X(int value); | Name | Description | *value* -| The value to construct from +| The object to copy construct from |=== -[#X-2constructor-0b] +[#X-2constructor-00] == link:#X[X]::X Construct from `A` @@ -198,7 +198,7 @@ Declared in `<param‐from‐function‐class.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -X(link:#A[A] const& value); +X(link:#A[A]&& value); ---- === Parameters @@ -208,13 +208,13 @@ X(link:#A[A] const& value); | Name | Description | *value* -| The object to copy construct from +| The object to move construct from |=== -[#X-2constructor-00] +[#X-2constructor-07] == link:#X[X]::X -Construct from `A` +Construct from `int` === Synopsis @@ -222,7 +222,7 @@ Declared in `<param‐from‐function‐class.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -X(link:#A[A]&& value); +X(int value); ---- === Parameters @@ -232,7 +232,7 @@ X(link:#A[A]&& value); | Name | Description | *value* -| The object to move construct from +| The value to construct from |=== [#X-operator_assign-0a] @@ -272,10 +272,10 @@ Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#X[X]& -link:#X-operator_assign-07f[operator=](int value); +link:#X-operator_assign-0d[operator=](link:#A[A] const& value); ---- -[.small]#link:#X-operator_assign-07f[_» more..._]# +[.small]#link:#X-operator_assign-0d[_» more..._]# Assignment operator @@ -283,10 +283,10 @@ Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#X[X]& -link:#X-operator_assign-0d[operator=](link:#A[A] const& value); +link:#X-operator_assign-07e[operator=](link:#A[A]&& value); ---- -[.small]#link:#X-operator_assign-0d[_» more..._]# +[.small]#link:#X-operator_assign-07e[_» more..._]# Assignment operator @@ -294,10 +294,10 @@ Assignment operator [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#X[X]& -link:#X-operator_assign-07e[operator=](link:#A[A]&& value); +link:#X-operator_assign-07f[operator=](int value); ---- -[.small]#link:#X-operator_assign-07e[_» more..._]# +[.small]#link:#X-operator_assign-07f[_» more..._]# [#X-operator_assign-06] == link:#X[X]::operator= @@ -357,7 +357,7 @@ Reference to the current object | The object to move assign from |=== -[#X-operator_assign-07f] +[#X-operator_assign-0d] == link:#X[X]::operator= Assignment operator @@ -369,7 +369,7 @@ Declared in `<param‐from‐function‐class.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#X[X]& -operator=(int value); +operator=(link:#A[A] const& value); ---- === Return Value @@ -383,10 +383,10 @@ Reference to the current object | Name | Description | *value* -| The value to assign from +| The object to copy assign from |=== -[#X-operator_assign-0d] +[#X-operator_assign-07e] == link:#X[X]::operator= Assignment operator @@ -398,7 +398,7 @@ Declared in `<param‐from‐function‐class.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#X[X]& -operator=(link:#A[A] const& value); +operator=(link:#A[A]&& value); ---- === Return Value @@ -412,10 +412,10 @@ Reference to the current object | Name | Description | *value* -| The object to copy assign from +| The object to move assign from |=== -[#X-operator_assign-07e] +[#X-operator_assign-07f] == link:#X[X]::operator= Assignment operator @@ -427,7 +427,7 @@ Declared in `<param‐from‐function‐class.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#X[X]& -operator=(link:#A[A]&& value); +operator=(int value); ---- === Return Value @@ -441,7 +441,7 @@ Reference to the current object | Name | Description | *value* -| The object to move assign from +| The value to assign from |=== diff --git a/test-files/golden-tests/config/auto-function-metadata/param-from-function-class.html b/test-files/golden-tests/config/auto-function-metadata/param-from-function-class.html index bdcfd1f52..d8d17cf7d 100644 --- a/test-files/golden-tests/config/auto-function-metadata/param-from-function-class.html +++ b/test-files/golden-tests/config/auto-function-metadata/param-from-function-class.html @@ -108,13 +108,6 @@

Synopses

» more... -Construct from int -
-X(int value);
-
-
-
» more... - Construct from A
 X(A const& value);
@@ -129,6 +122,13 @@ 

Synopses

» more... +Construct from int +
+X(int value);
+
+
+
» more... +
@@ -206,9 +206,9 @@

Parameters

-

X::X

+

X::X

-Construct from int +Construct from A
@@ -217,7 +217,7 @@

Synopsis

Declared in <param-from-function-class.cpp>
-X(int value);
+X(A const& value);
 
 
 
@@ -234,7 +234,7 @@

Parameters

value -The value to construct from +The object to copy construct from @@ -242,7 +242,7 @@

Parameters

-

X::X

+

X::X

Construct from A @@ -253,7 +253,7 @@

Synopsis

Declared in <param-from-function-class.cpp>
-X(A const& value);
+X(A&& value);
 
 
 
@@ -270,7 +270,7 @@

Parameters

value -The object to copy construct from +The object to move construct from @@ -278,9 +278,9 @@

Parameters

-

X::X

+

X::X

-Construct from A +Construct from int
@@ -289,7 +289,7 @@

Synopsis

Declared in <param-from-function-class.cpp>
-X(A&& value);
+X(int value);
 
 
 
@@ -306,7 +306,7 @@

Parameters

value -The object to move construct from +The value to construct from @@ -343,26 +343,26 @@

Synopses

Assignment operator
 X&
-operator=(int value);
+operator=(A const& value);
 
 
-
» more... +» more... Assignment operator
 X&
-operator=(A const& value);
+operator=(A&& value);
 
 
-
» more... +» more... Assignment operator
 X&
-operator=(A&& value);
+operator=(int value);
 
 
-
» more... +» more...
@@ -451,7 +451,7 @@

Parameters

-

X::operator=

+

X::operator=

Assignment operator @@ -463,7 +463,7 @@

Synopsis

Declared in <param-from-function-class.cpp>
 X&
-operator=(int value);
+operator=(A const& value);
 
 
 
@@ -484,7 +484,7 @@

Parameters

value -The value to assign from +The object to copy assign from @@ -492,7 +492,7 @@

Parameters

-

X::operator=

+

X::operator=

Assignment operator @@ -504,7 +504,7 @@

Synopsis

Declared in <param-from-function-class.cpp>
 X&
-operator=(A const& value);
+operator=(A&& value);
 
 
 
@@ -525,7 +525,7 @@

Parameters

value -The object to copy assign from +The object to move assign from @@ -533,7 +533,7 @@

Parameters

-

X::operator=

+

X::operator=

Assignment operator @@ -545,7 +545,7 @@

Synopsis

Declared in <param-from-function-class.cpp>
 X&
-operator=(A&& value);
+operator=(int value);
 
 
 
@@ -566,7 +566,7 @@

Parameters

value -The object to move assign from +The value to assign from diff --git a/test-files/golden-tests/config/auto-function-metadata/param-from-function-class.xml b/test-files/golden-tests/config/auto-function-metadata/param-from-function-class.xml index 09bd6cf95..77fe32511 100644 --- a/test-files/golden-tests/config/auto-function-metadata/param-from-function-class.xml +++ b/test-files/golden-tests/config/auto-function-metadata/param-from-function-class.xml @@ -49,21 +49,6 @@ - - - - - - - - Construct from - int - - - The value to construct from - - - @@ -98,6 +83,21 @@ + + + + + + + + Construct from + int + + + The value to construct from + + + @@ -148,8 +148,8 @@ - - + + @@ -157,7 +157,9 @@ - + + + @@ -167,12 +169,12 @@ Reference to the current object - The value to assign from + The object to copy assign from - - + + @@ -180,8 +182,8 @@ - - + + @@ -192,12 +194,12 @@ Reference to the current object - The object to copy assign from + The object to move assign from - - + + @@ -205,9 +207,7 @@ - - - + @@ -217,7 +217,7 @@ Reference to the current object - The object to move assign from + The value to assign from diff --git a/test-files/golden-tests/config/inherit-base-members/nested.adoc b/test-files/golden-tests/config/inherit-base-members/nested.adoc index 3016533f7..20a330d58 100644 --- a/test-files/golden-tests/config/inherit-base-members/nested.adoc +++ b/test-files/golden-tests/config/inherit-base-members/nested.adoc @@ -56,10 +56,10 @@ class base; |=== | Name | Description -| link:#X-base-base_inherited[`base_inherited`] -| This function should be inherited by derived classes. | link:#X-base-derived_shadowed[`derived_shadowed`] | This function should be shadowed by derived classes. +| link:#X-base-base_inherited[`base_inherited`] +| This function should be inherited by derived classes. |=== === Protected Member Functions @@ -68,10 +68,10 @@ class base; |=== | Name | Description -| link:#X-base-do_base_inherited[`do_base_inherited`] -| This function should be inherited by derived classes. | link:#X-base-do_derived_shadowed[`do_derived_shadowed`] | This function should be shadowed by derived classes. +| link:#X-base-do_base_inherited[`do_base_inherited`] +| This function should be inherited by derived classes. |=== === Derived Classes @@ -84,10 +84,10 @@ class base; | A class that derives from base and excluded_base |=== -[#X-base-base_inherited] -== link:#X[X]::link:#X-base[base]::base_inherited +[#X-base-derived_shadowed] +== link:#X[X]::link:#X-base[base]::derived_shadowed -This function should be inherited by derived classes. +This function should be shadowed by derived classes. === Synopsis @@ -96,17 +96,17 @@ Declared in `<nested.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#X-base[base]& -base_inherited(); +derived_shadowed(); ---- === Return Value A base class to test inheritance and shadowing -[#X-base-derived_shadowed] -== link:#X[X]::link:#X-base[base]::derived_shadowed +[#X-base-base_inherited] +== link:#X[X]::link:#X-base[base]::base_inherited -This function should be shadowed by derived classes. +This function should be inherited by derived classes. === Synopsis @@ -115,17 +115,17 @@ Declared in `<nested.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#X-base[base]& -derived_shadowed(); +base_inherited(); ---- === Return Value A base class to test inheritance and shadowing -[#X-base-do_base_inherited] -== link:#X[X]::link:#X-base[base]::do_base_inherited +[#X-base-do_derived_shadowed] +== link:#X[X]::link:#X-base[base]::do_derived_shadowed -This function should be inherited by derived classes. +This function should be shadowed by derived classes. === Synopsis @@ -134,17 +134,17 @@ Declared in `<nested.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#X-base[base]& -do_base_inherited(); +do_derived_shadowed(); ---- === Return Value A base class to test inheritance and shadowing -[#X-base-do_derived_shadowed] -== link:#X[X]::link:#X-base[base]::do_derived_shadowed +[#X-base-do_base_inherited] +== link:#X[X]::link:#X-base[base]::do_base_inherited -This function should be shadowed by derived classes. +This function should be inherited by derived classes. === Synopsis @@ -153,7 +153,7 @@ Declared in `<nested.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#X-base[base]& -do_derived_shadowed(); +do_base_inherited(); ---- === Return Value @@ -191,10 +191,10 @@ class derived |=== | Name | Description -| link:#X-derived-base_inherited[`base_inherited`] -| This function should be inherited by derived classes. | link:#X-derived-derived_shadowed[`derived_shadowed`] | This function should shadow the base class function. +| link:#X-derived-base_inherited[`base_inherited`] +| This function should be inherited by derived classes. |=== === Protected Member Functions @@ -203,31 +203,12 @@ class derived |=== | Name | Description -| link:#X-derived-do_base_inherited[`do_base_inherited`] -| This function should be inherited by derived classes. | link:#X-derived-do_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. +| link:#X-derived-do_base_inherited[`do_base_inherited`] +| This function should be inherited by derived classes. |=== -[#X-derived-base_inherited] -== link:#X[X]::link:#X-derived[derived]::base_inherited - -This function should be inherited by derived classes. - -=== Synopsis - -Declared in `<nested.cpp>` - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -link:#X-base[base]& -base_inherited(); ----- - -=== Return Value - -A base class to test inheritance and shadowing - [#X-derived-derived_shadowed] == link:#X[X]::link:#X-derived[derived]::derived_shadowed @@ -247,8 +228,8 @@ derived_shadowed(); A class that derives from base and excluded_base -[#X-derived-do_base_inherited] -== link:#X[X]::link:#X-derived[derived]::do_base_inherited +[#X-derived-base_inherited] +== link:#X[X]::link:#X-derived[derived]::base_inherited This function should be inherited by derived classes. @@ -259,7 +240,7 @@ Declared in `<nested.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- link:#X-base[base]& -do_base_inherited(); +base_inherited(); ---- === Return Value @@ -285,5 +266,24 @@ do_derived_shadowed(); A class that derives from base and excluded_base +[#X-derived-do_base_inherited] +== link:#X[X]::link:#X-derived[derived]::do_base_inherited + +This function should be inherited by derived classes. + +=== Synopsis + +Declared in `<nested.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +link:#X-base[base]& +do_base_inherited(); +---- + +=== Return Value + +A base class to test inheritance and shadowing + [.small]#Created with https://www.mrdocs.com[MrDocs]# diff --git a/test-files/golden-tests/config/inherit-base-members/nested.html b/test-files/golden-tests/config/inherit-base-members/nested.html index 574463f79..f4ee58099 100644 --- a/test-files/golden-tests/config/inherit-base-members/nested.html +++ b/test-files/golden-tests/config/inherit-base-members/nested.html @@ -83,8 +83,8 @@

Member Functions

-base_inherited This function should be inherited by derived classes. -derived_shadowed This function should be shadowed by derived classes. +derived_shadowed This function should be shadowed by derived classes. +base_inherited This function should be inherited by derived classes. @@ -99,8 +99,8 @@

Protected Member Functions

-do_base_inherited This function should be inherited by derived classes. -do_derived_shadowed This function should be shadowed by derived classes. +do_derived_shadowed This function should be shadowed by derived classes. +do_base_inherited This function should be inherited by derived classes. @@ -123,9 +123,9 @@

Derived Classes

-

X::base::base_inherited

+

X::base::derived_shadowed

-This function should be inherited by derived classes. +This function should be shadowed by derived classes.
@@ -135,7 +135,7 @@

Synopsis

Declared in <nested.cpp>
 base&
-base_inherited();
+derived_shadowed();
 
 
 
@@ -147,9 +147,9 @@

Return Value

-

X::base::derived_shadowed

+

X::base::base_inherited

-This function should be shadowed by derived classes. +This function should be inherited by derived classes.
@@ -159,7 +159,7 @@

Synopsis

Declared in <nested.cpp>
 base&
-derived_shadowed();
+base_inherited();
 
 
 
@@ -171,9 +171,9 @@

Return Value

-

X::base::do_base_inherited

+

X::base::do_derived_shadowed

-This function should be inherited by derived classes. +This function should be shadowed by derived classes.
@@ -183,7 +183,7 @@

Synopsis

Declared in <nested.cpp>
 base&
-do_base_inherited();
+do_derived_shadowed();
 
 
 
@@ -195,9 +195,9 @@

Return Value

-

X::base::do_derived_shadowed

+

X::base::do_base_inherited

-This function should be shadowed by derived classes. +This function should be inherited by derived classes.
@@ -207,7 +207,7 @@

Synopsis

Declared in <nested.cpp>
 base&
-do_derived_shadowed();
+do_base_inherited();
 
 
 
@@ -260,8 +260,8 @@

Member Functions

-base_inherited This function should be inherited by derived classes. -derived_shadowed This function should shadow the base class function. +derived_shadowed This function should shadow the base class function. +base_inherited This function should be inherited by derived classes. @@ -276,8 +276,8 @@

Protected Member Functions

-do_base_inherited This function should be inherited by derived classes. -do_derived_shadowed This function should shadow the base class function. +do_derived_shadowed This function should shadow the base class function. +do_base_inherited This function should be inherited by derived classes. @@ -285,9 +285,9 @@

Protected Member Functions

-

X::derived::base_inherited

+

X::derived::derived_shadowed

-This function should be inherited by derived classes. +This function should shadow the base class function.
@@ -296,22 +296,22 @@

Synopsis

Declared in <nested.cpp>
-base&
-base_inherited();
+derived&
+derived_shadowed();
 
 
 

Return Value

-A base class to test inheritance and shadowing +A class that derives from base and excluded_base
-

X::derived::derived_shadowed

+

X::derived::base_inherited

-This function should shadow the base class function. +This function should be inherited by derived classes.
@@ -320,22 +320,22 @@

Synopsis

Declared in <nested.cpp>
-derived&
-derived_shadowed();
+base&
+base_inherited();
 
 
 

Return Value

-A class that derives from base and excluded_base +A base class to test inheritance and shadowing
-

X::derived::do_base_inherited

+

X::derived::do_derived_shadowed

-This function should be inherited by derived classes. +This function should shadow the base class function.
@@ -344,22 +344,22 @@

Synopsis

Declared in <nested.cpp>
-base&
-do_base_inherited();
+derived&
+do_derived_shadowed();
 
 
 

Return Value

-A base class to test inheritance and shadowing +A class that derives from base and excluded_base
-

X::derived::do_derived_shadowed

+

X::derived::do_base_inherited

-This function should shadow the base class function. +This function should be inherited by derived classes.
@@ -368,15 +368,15 @@

Synopsis

Declared in <nested.cpp>
-derived&
-do_derived_shadowed();
+base&
+do_base_inherited();
 
 
 

Return Value

-A class that derives from base and excluded_base +A base class to test inheritance and shadowing
diff --git a/test-files/golden-tests/config/inherit-base-members/nested.xml b/test-files/golden-tests/config/inherit-base-members/nested.xml index c2851e93c..b75b18a8f 100644 --- a/test-files/golden-tests/config/inherit-base-members/nested.xml +++ b/test-files/golden-tests/config/inherit-base-members/nested.xml @@ -11,8 +11,8 @@ A base class to test inheritance and shadowing - - + + @@ -20,15 +20,15 @@ - This function should be inherited by derived classes. + This function should be shadowed by derived classes. A base class to test inheritance and shadowing - - + + @@ -36,15 +36,15 @@ - This function should be shadowed by derived classes. + This function should be inherited by derived classes. A base class to test inheritance and shadowing - - + + @@ -52,15 +52,15 @@ - This function should be inherited by derived classes. + This function should be shadowed by derived classes. A base class to test inheritance and shadowing - - + + @@ -68,7 +68,7 @@ - This function should be shadowed by derived classes. + This function should be inherited by derived classes. A base class to test inheritance and shadowing @@ -86,22 +86,6 @@ A class that derives from base and excluded_base - - - - - - - - - - This function should be inherited by derived classes. - - - A base class to test inheritance and shadowing - - - @@ -118,8 +102,8 @@ - - + + @@ -150,6 +134,22 @@ + + + + + + + + + + This function should be inherited by derived classes. + + + A base class to test inheritance and shadowing + + + diff --git a/test-files/golden-tests/config/sort-members-by/sort-members-by-name.adoc b/test-files/golden-tests/config/sort-members-by/sort-members-by-name.adoc index c71581bd8..c2610b6d6 100644 --- a/test-files/golden-tests/config/sort-members-by/sort-members-by-name.adoc +++ b/test-files/golden-tests/config/sort-members-by/sort-members-by-name.adoc @@ -59,16 +59,6 @@ Constructors Declared in `<sort‐members‐by‐name.cpp>` -Default constructor - - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -link:#Z-2constructor-05[Z](); ----- - -[.small]#link:#Z-2constructor-05[_» more..._]# - Construct from `int` @@ -79,20 +69,16 @@ link:#Z-2constructor-06[Z](int value); [.small]#link:#Z-2constructor-06[_» more..._]# -[#Z-2constructor-05] -== link:#Z[Z]::Z - Default constructor -=== Synopsis - -Declared in `<sort‐members‐by‐name.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -Z(); +link:#Z-2constructor-05[Z](); ---- +[.small]#link:#Z-2constructor-05[_» more..._]# + [#Z-2constructor-06] == link:#Z[Z]::Z @@ -117,6 +103,20 @@ Z(int value); | The value to construct from |=== +[#Z-2constructor-05] +== link:#Z[Z]::Z + +Default constructor + +=== Synopsis + +Declared in `<sort‐members‐by‐name.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +Z(); +---- + [#Z-2destructor] == link:#Z[Z]::~Z diff --git a/test-files/golden-tests/config/sort-members-by/sort-members-by-name.html b/test-files/golden-tests/config/sort-members-by/sort-members-by-name.html index 839f92eca..c24eef6ea 100644 --- a/test-files/golden-tests/config/sort-members-by/sort-members-by-name.html +++ b/test-files/golden-tests/config/sort-members-by/sort-members-by-name.html @@ -74,13 +74,6 @@

Z::Z

Synopses

Declared in <sort-members-by-name.cpp>
-Default constructor -
-Z();
-
-
-
» more... - Construct from int
 Z(int value);
@@ -88,26 +81,14 @@ 

Synopses

» more... - - - -
-
-

Z::Z

-
Default constructor - -
-
-
-

Synopsis

-
-Declared in <sort-members-by-name.cpp>
-Z();
+Z();
 
 
-
+» more... + +
@@ -148,6 +129,25 @@

Parameters

+

Z::Z

+
+Default constructor + +
+
+
+

Synopsis

+
+Declared in <sort-members-by-name.cpp>
+
+Z();
+
+
+
+
+
+
+

Z::~Z

Destructor diff --git a/test-files/golden-tests/config/sort-members-by/sort-members-by-name.xml b/test-files/golden-tests/config/sort-members-by/sort-members-by-name.xml index ea7587b9a..8f1c00c19 100644 --- a/test-files/golden-tests/config/sort-members-by/sort-members-by-name.xml +++ b/test-files/golden-tests/config/sort-members-by/sort-members-by-name.xml @@ -4,14 +4,6 @@ - - - - - Default constructor - - - @@ -27,6 +19,14 @@ + + + + + Default constructor + + + 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 5819d534a..98b45f52a 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 @@ -191,16 +191,6 @@ Constructors Declared in `<sort‐namespace‐members‐by‐location.cpp>` -Default constructor - - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -link:#Z-2constructor-05[Z](); ----- - -[.small]#link:#Z-2constructor-05[_» more..._]# - Construct from `int` @@ -211,20 +201,16 @@ link:#Z-2constructor-06[Z](int value); [.small]#link:#Z-2constructor-06[_» more..._]# -[#Z-2constructor-05] -== link:#Z[Z]::Z - Default constructor -=== Synopsis - -Declared in `<sort‐namespace‐members‐by‐location.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -Z(); +link:#Z-2constructor-05[Z](); ---- +[.small]#link:#Z-2constructor-05[_» more..._]# + [#Z-2constructor-06] == link:#Z[Z]::Z @@ -249,6 +235,20 @@ Z(int value); | The value to construct from |=== +[#Z-2constructor-05] +== link:#Z[Z]::Z + +Default constructor + +=== Synopsis + +Declared in `<sort‐namespace‐members‐by‐location.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +Z(); +---- + [#Z-2destructor] == link:#Z[Z]::~Z 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 e90718cb6..0718c256a 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 @@ -246,13 +246,6 @@

Z::Z

Synopses

Declared in <sort-namespace-members-by-location.cpp>
-Default constructor -
-Z();
-
-
-
» more... - Construct from int
 Z(int value);
@@ -260,26 +253,14 @@ 

Synopses

» more... - -
-
-
-
-

Z::Z

-
Default constructor - -
-
-
-

Synopsis

-
-Declared in <sort-namespace-members-by-location.cpp>
-Z();
+Z();
 
 
-
+» more... + +
@@ -320,6 +301,25 @@

Parameters

+

Z::Z

+
+Default constructor + +
+
+
+

Synopsis

+
+Declared in <sort-namespace-members-by-location.cpp>
+
+Z();
+
+
+
+
+
+
+

Z::~Z

Destructor 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 0071193ec..b4057c78b 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 @@ -52,14 +52,6 @@ - - - - - Default constructor - - - @@ -75,6 +67,14 @@ + + + + + Default constructor + + + 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 1ba8bff7f..29b0b51d6 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 @@ -191,16 +191,6 @@ Constructors Declared in `<sort‐namespace‐members‐by‐name.cpp>` -Default constructor - - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -link:#Z-2constructor-05[Z](); ----- - -[.small]#link:#Z-2constructor-05[_» more..._]# - Construct from `int` @@ -211,20 +201,16 @@ link:#Z-2constructor-06[Z](int value); [.small]#link:#Z-2constructor-06[_» more..._]# -[#Z-2constructor-05] -== link:#Z[Z]::Z - Default constructor -=== Synopsis - -Declared in `<sort‐namespace‐members‐by‐name.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -Z(); +link:#Z-2constructor-05[Z](); ---- +[.small]#link:#Z-2constructor-05[_» more..._]# + [#Z-2constructor-06] == link:#Z[Z]::Z @@ -249,6 +235,20 @@ Z(int value); | The value to construct from |=== +[#Z-2constructor-05] +== link:#Z[Z]::Z + +Default constructor + +=== Synopsis + +Declared in `<sort‐namespace‐members‐by‐name.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +Z(); +---- + [#Z-2destructor] == link:#Z[Z]::~Z 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 399b5f869..abbab300b 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 @@ -246,13 +246,6 @@

Z::Z

Synopses

Declared in <sort-namespace-members-by-name.cpp>
-Default constructor -
-Z();
-
-
-
» more... - Construct from int
 Z(int value);
@@ -260,26 +253,14 @@ 

Synopses

» more... - -
-
-
-
-

Z::Z

-
Default constructor - -
-
-
-

Synopsis

-
-Declared in <sort-namespace-members-by-name.cpp>
-Z();
+Z();
 
 
-
+» more... + +
@@ -320,6 +301,25 @@

Parameters

+

Z::Z

+
+Default constructor + +
+
+
+

Synopsis

+
+Declared in <sort-namespace-members-by-name.cpp>
+
+Z();
+
+
+
+
+
+
+

Z::~Z

Destructor 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 db912f484..6e38cd1db 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 @@ -52,14 +52,6 @@ - - - - - Default constructor - - - @@ -75,6 +67,14 @@ + + + + + Default constructor + + + diff --git a/test-files/golden-tests/config/sort/sort-members.adoc b/test-files/golden-tests/config/sort/sort-members.adoc index d0b9a0b30..57991f8a5 100644 --- a/test-files/golden-tests/config/sort/sort-members.adoc +++ b/test-files/golden-tests/config/sort/sort-members.adoc @@ -191,16 +191,6 @@ Constructors Declared in `<sort‐members.cpp>` -Default constructor - - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -link:#Z-2constructor-05[Z](); ----- - -[.small]#link:#Z-2constructor-05[_» more..._]# - Construct from `int` @@ -211,20 +201,16 @@ link:#Z-2constructor-06[Z](int value); [.small]#link:#Z-2constructor-06[_» more..._]# -[#Z-2constructor-05] -== link:#Z[Z]::Z - Default constructor -=== Synopsis - -Declared in `<sort‐members.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -Z(); +link:#Z-2constructor-05[Z](); ---- +[.small]#link:#Z-2constructor-05[_» more..._]# + [#Z-2constructor-06] == link:#Z[Z]::Z @@ -249,6 +235,20 @@ Z(int value); | The value to construct from |=== +[#Z-2constructor-05] +== link:#Z[Z]::Z + +Default constructor + +=== Synopsis + +Declared in `<sort‐members.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +Z(); +---- + [#Z-2destructor] == link:#Z[Z]::~Z diff --git a/test-files/golden-tests/config/sort/sort-members.html b/test-files/golden-tests/config/sort/sort-members.html index d2563ae5a..28b01c5d0 100644 --- a/test-files/golden-tests/config/sort/sort-members.html +++ b/test-files/golden-tests/config/sort/sort-members.html @@ -246,13 +246,6 @@

Z::Z

Synopses

Declared in <sort-members.cpp>
-Default constructor -
-Z();
-
-
-
» more... - Construct from int
 Z(int value);
@@ -260,26 +253,14 @@ 

Synopses

» more... - -
-
-
-
-

Z::Z

-
Default constructor - -
-
-
-

Synopsis

-
-Declared in <sort-members.cpp>
-Z();
+Z();
 
 
-
+» more... + +
@@ -320,6 +301,25 @@

Parameters

+

Z::Z

+
+Default constructor + +
+
+
+

Synopsis

+
+Declared in <sort-members.cpp>
+
+Z();
+
+
+
+
+
+
+

Z::~Z

Destructor diff --git a/test-files/golden-tests/config/sort/sort-members.xml b/test-files/golden-tests/config/sort/sort-members.xml index 143cabb54..54b340ae9 100644 --- a/test-files/golden-tests/config/sort/sort-members.xml +++ b/test-files/golden-tests/config/sort/sort-members.xml @@ -52,14 +52,6 @@ - - - - - Default constructor - - - @@ -75,6 +67,14 @@ + + + + + Default constructor + + + diff --git a/test-files/golden-tests/config/sort/unordered.adoc b/test-files/golden-tests/config/sort/unordered.adoc index f615bc695..0cc3dd580 100644 --- a/test-files/golden-tests/config/sort/unordered.adoc +++ b/test-files/golden-tests/config/sort/unordered.adoc @@ -342,16 +342,6 @@ Constructors Declared in `<unordered.cpp>` -Default constructor - - -[source,cpp,subs="verbatim,replacements,macros,-callouts"] ----- -link:#Z-2constructor-05[Z](); ----- - -[.small]#link:#Z-2constructor-05[_» more..._]# - Construct from `int` @@ -362,20 +352,16 @@ link:#Z-2constructor-06[Z](int value); [.small]#link:#Z-2constructor-06[_» more..._]# -[#Z-2constructor-05] -== link:#Z[Z]::Z - Default constructor -=== Synopsis - -Declared in `<unordered.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -Z(); +link:#Z-2constructor-05[Z](); ---- +[.small]#link:#Z-2constructor-05[_» more..._]# + [#Z-2constructor-06] == link:#Z[Z]::Z @@ -400,6 +386,20 @@ Z(int value); | The value to construct from |=== +[#Z-2constructor-05] +== link:#Z[Z]::Z + +Default constructor + +=== Synopsis + +Declared in `<unordered.cpp>` + +[source,cpp,subs="verbatim,replacements,macros,-callouts"] +---- +Z(); +---- + [#operator_not_eq] == operator!= diff --git a/test-files/golden-tests/config/sort/unordered.html b/test-files/golden-tests/config/sort/unordered.html index 6dc210a0f..62830da1e 100644 --- a/test-files/golden-tests/config/sort/unordered.html +++ b/test-files/golden-tests/config/sort/unordered.html @@ -451,13 +451,6 @@

Z::Z

Synopses

Declared in <unordered.cpp>
-Default constructor -
-Z();
-
-
-
» more... - Construct from int
 Z(int value);
@@ -465,26 +458,14 @@ 

Synopses

» more... - -
-
-
-
-

Z::Z

-
Default constructor - -
-
-
-

Synopsis

-
-Declared in <unordered.cpp>
-Z();
+Z();
 
 
-
+» more... + +
@@ -525,6 +506,25 @@

Parameters

+

Z::Z

+
+Default constructor + +
+
+
+

Synopsis

+
+Declared in <unordered.cpp>
+
+Z();
+
+
+
+
+
+
+

operator!=

Inequality operator diff --git a/test-files/golden-tests/config/sort/unordered.xml b/test-files/golden-tests/config/sort/unordered.xml index 1715fe9d1..0657884e7 100644 --- a/test-files/golden-tests/config/sort/unordered.xml +++ b/test-files/golden-tests/config/sort/unordered.xml @@ -179,14 +179,6 @@ - - - - - Default constructor - - - @@ -202,6 +194,14 @@ + + + + + Default constructor + + + diff --git a/test-files/golden-tests/javadoc/copydoc/operator-param.adoc b/test-files/golden-tests/javadoc/copydoc/operator-param.adoc index dd7aab791..50b355d76 100644 --- a/test-files/golden-tests/javadoc/copydoc/operator-param.adoc +++ b/test-files/golden-tests/javadoc/copydoc/operator-param.adoc @@ -50,10 +50,10 @@ Return true if ch is in the character set. ---- constexpr bool -link:#A-operator_call-0f[operator()](char ch) const noexcept; +link:#A-operator_call-0b[operator()](unsigned char ch) const noexcept; ---- -[.small]#link:#A-operator_call-0f[_» more..._]# +[.small]#link:#A-operator_call-0b[_» more..._]# Return true if ch is in the character set. @@ -62,10 +62,10 @@ Return true if ch is in the character set. ---- constexpr bool -link:#A-operator_call-0b[operator()](unsigned char ch) const noexcept; +link:#A-operator_call-0f[operator()](char ch) const noexcept; ---- -[.small]#link:#A-operator_call-0b[_» more..._]# +[.small]#link:#A-operator_call-0f[_» more..._]# === Return Value @@ -78,10 +78,10 @@ True if ch is in the set, otherwise false. | Name | Description | *ch* -| The signed character to test. +| The unsigned character to test. |=== -[#A-operator_call-0f] +[#A-operator_call-0b] == link:#A[A]::operator() Return true if ch is in the character set. @@ -94,7 +94,7 @@ Declared in `<operator‐param.cpp>` ---- constexpr bool -operator()(char ch) const noexcept; +operator()(unsigned char ch) const noexcept; ---- === Description @@ -112,10 +112,10 @@ True if ch is in the set, otherwise false. | Name | Description | *ch* -| The signed character to test. +| The unsigned character to test. |=== -[#A-operator_call-0b] +[#A-operator_call-0f] == link:#A[A]::operator() Return true if ch is in the character set. @@ -128,7 +128,7 @@ Declared in `<operator‐param.cpp>` ---- constexpr bool -operator()(unsigned char ch) const noexcept; +operator()(char ch) const noexcept; ---- === Description @@ -146,7 +146,7 @@ True if ch is in the set, otherwise false. | Name | Description | *ch* -| The unsigned character to test. +| The signed character to test. |=== diff --git a/test-files/golden-tests/javadoc/copydoc/operator-param.html b/test-files/golden-tests/javadoc/copydoc/operator-param.html index 69beb6df7..666f990e1 100644 --- a/test-files/golden-tests/javadoc/copydoc/operator-param.html +++ b/test-files/golden-tests/javadoc/copydoc/operator-param.html @@ -70,19 +70,19 @@

Synopses

 constexpr
 bool
-operator()(char ch) const noexcept;
+operator()(unsigned char ch) const noexcept;
 
 
-
» more... +» more... Return true if ch is in the character set.
 constexpr
 bool
-operator()(unsigned char ch) const noexcept;
+operator()(char ch) const noexcept;
 
 
-
» more... +» more...
@@ -102,7 +102,7 @@

Parameters

ch -The signed character to test. +The unsigned character to test. @@ -110,7 +110,7 @@

Parameters

-

A::operator()

+

A::operator()

Return true if ch is in the character set. @@ -123,7 +123,7 @@

Synopsis

 constexpr
 bool
-operator()(char ch) const noexcept;
+operator()(unsigned char ch) const noexcept;
 
 
 
@@ -148,7 +148,7 @@

Parameters

ch -The signed character to test. +The unsigned character to test. @@ -156,7 +156,7 @@

Parameters

-

A::operator()

+

A::operator()

Return true if ch is in the character set. @@ -169,7 +169,7 @@

Synopsis

 constexpr
 bool
-operator()(unsigned char ch) const noexcept;
+operator()(char ch) const noexcept;
 
 
 
@@ -194,7 +194,7 @@

Parameters

ch -The unsigned character to test. +The signed character to test. diff --git a/test-files/golden-tests/javadoc/copydoc/operator-param.xml b/test-files/golden-tests/javadoc/copydoc/operator-param.xml index 742d01c42..4affc9392 100644 --- a/test-files/golden-tests/javadoc/copydoc/operator-param.xml +++ b/test-files/golden-tests/javadoc/copydoc/operator-param.xml @@ -4,8 +4,8 @@ - - + + @@ -13,7 +13,7 @@ - + @@ -26,12 +26,12 @@ True if ch is in the set, otherwise false. - The signed character to test. + The unsigned character to test. - - + + @@ -39,7 +39,7 @@ - + @@ -52,7 +52,7 @@ True if ch is in the set, otherwise false. - The unsigned character to test. + The signed character to test. diff --git a/test-files/golden-tests/javadoc/copydoc/qualified.adoc b/test-files/golden-tests/javadoc/copydoc/qualified.adoc index 8e2497b3c..9808fbcee 100644 --- a/test-files/golden-tests/javadoc/copydoc/qualified.adoc +++ b/test-files/golden-tests/javadoc/copydoc/qualified.adoc @@ -427,27 +427,27 @@ Documentation for the reference function Declared in `<qualified.cpp>` -Reference function +Fail [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void -link:#N-A-g-0a[g](link:#N-A-B[B] a); +link:#N-A-g-06c[g](int a); ---- -[.small]#link:#N-A-g-0a[_» more..._]# +[.small]#link:#N-A-g-06c[_» more..._]# -Fail +Reference function [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void -link:#N-A-g-06c[g](int a); +link:#N-A-g-0a[g](link:#N-A-B[B] a); ---- -[.small]#link:#N-A-g-06c[_» more..._]# +[.small]#link:#N-A-g-0a[_» more..._]# === Parameters @@ -456,13 +456,13 @@ link:#N-A-g-06c[g](int a); | Name | Description | *a* -| Qualified param +| Fundamental type parameter |=== -[#N-A-g-0a] +[#N-A-g-06c] == link:#N[N]::link:#N-A[A]::g -Reference function +Fail === Synopsis @@ -471,12 +471,12 @@ Declared in `<qualified.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void -g(link:#N-A-B[B] a); +g(int a); ---- === Description -Documentation for the reference function +Function with same number of parameters but different types. This should fail. === Parameters @@ -485,13 +485,13 @@ Documentation for the reference function | Name | Description | *a* -| Qualified param +| Fundamental type parameter |=== -[#N-A-g-06c] +[#N-A-g-0a] == link:#N[N]::link:#N-A[A]::g -Fail +Reference function === Synopsis @@ -500,12 +500,12 @@ Declared in `<qualified.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void -g(int a); +g(link:#N-A-B[B] a); ---- === Description -Function with same number of parameters but different types. This should fail. +Documentation for the reference function === Parameters @@ -514,7 +514,7 @@ Function with same number of parameters but different types. This should | Name | Description | *a* -| Fundamental type parameter +| Qualified param |=== [#N-A-h-05] @@ -526,27 +526,27 @@ Function with same number of parameters but different types. This should Declared in `<qualified.cpp>` -Reference function +Fail [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void -link:#N-A-h-0f[h](link:#N-A-B[N::A::B] a); +link:#N-A-h-06[h](int a); ---- -[.small]#link:#N-A-h-0f[_» more..._]# +[.small]#link:#N-A-h-06[_» more..._]# -Fail +Reference function [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void -link:#N-A-h-06[h](int a); +link:#N-A-h-0f[h](link:#N-A-B[N::A::B] a); ---- -[.small]#link:#N-A-h-06[_» more..._]# +[.small]#link:#N-A-h-0f[_» more..._]# === Parameters @@ -555,13 +555,13 @@ link:#N-A-h-06[h](int a); | Name | Description | *a* -| Qualified param +| Fundamental type parameter |=== -[#N-A-h-0f] +[#N-A-h-06] == link:#N[N]::link:#N-A[A]::h -Reference function +Fail === Synopsis @@ -570,12 +570,12 @@ Declared in `<qualified.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void -h(link:#N-A-B[N::A::B] a); +h(int a); ---- === Description -Documentation for the reference function +Function with same number of parameters but different types. This should fail. === Parameters @@ -584,13 +584,13 @@ Documentation for the reference function | Name | Description | *a* -| Qualified param +| Fundamental type parameter |=== -[#N-A-h-06] +[#N-A-h-0f] == link:#N[N]::link:#N-A[A]::h -Fail +Reference function === Synopsis @@ -599,12 +599,12 @@ Declared in `<qualified.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- void -h(int a); +h(link:#N-A-B[N::A::B] a); ---- === Description -Function with same number of parameters but different types. This should fail. +Documentation for the reference function === Parameters @@ -613,7 +613,7 @@ Function with same number of parameters but different types. This should | Name | Description | *a* -| Fundamental type parameter +| Qualified param |=== [#param_t] diff --git a/test-files/golden-tests/javadoc/copydoc/qualified.html b/test-files/golden-tests/javadoc/copydoc/qualified.html index 9765eeece..1cf6bf204 100644 --- a/test-files/golden-tests/javadoc/copydoc/qualified.html +++ b/test-files/golden-tests/javadoc/copydoc/qualified.html @@ -554,21 +554,21 @@

N::A::g

Synopses

Declared in <qualified.cpp>
-Reference function +Fail
 void
-g(B a);
+g(int a);
 
 
-
» more... +» more... -Fail +Reference function
 void
-g(int a);
+g(B a);
 
 
-
» more... +» more...
@@ -584,7 +584,7 @@

Parameters

a -Qualified param +Fundamental type parameter @@ -592,9 +592,9 @@

Parameters

-

N::A::g

+

N::A::g

-Reference function +Fail
@@ -604,14 +604,14 @@

Synopsis

Declared in <qualified.cpp>
 void
-g(B a);
+g(int a);
 
 
 

Description

-

Documentation for the reference function

+

Function with same number of parameters but different types. This should fail.

Parameters

@@ -625,7 +625,7 @@

Parameters

a -Qualified param +Fundamental type parameter @@ -633,9 +633,9 @@

Parameters

-

N::A::g

+

N::A::g

-Fail +Reference function
@@ -645,14 +645,14 @@

Synopsis

Declared in <qualified.cpp>
 void
-g(int a);
+g(B a);
 
 
 

Description

-

Function with same number of parameters but different types. This should fail.

+

Documentation for the reference function

Parameters

@@ -666,7 +666,7 @@

Parameters

a -Fundamental type parameter +Qualified param @@ -684,21 +684,21 @@

N::A::h

Synopses

Declared in <qualified.cpp>
-Reference function +Fail
 void
-h(N::A::B a);
+h(int a);
 
 
-
» more... +» more... -Fail +Reference function
 void
-h(int a);
+h(N::A::B a);
 
 
-
» more... +» more...
@@ -714,7 +714,7 @@

Parameters

a -Qualified param +Fundamental type parameter @@ -722,9 +722,9 @@

Parameters

-

N::A::h

+

N::A::h

-Reference function +Fail
@@ -734,14 +734,14 @@

Synopsis

Declared in <qualified.cpp>
 void
-h(N::A::B a);
+h(int a);
 
 
 

Description

-

Documentation for the reference function

+

Function with same number of parameters but different types. This should fail.

Parameters

@@ -755,7 +755,7 @@

Parameters

a -Qualified param +Fundamental type parameter @@ -763,9 +763,9 @@

Parameters

-

N::A::h

+

N::A::h

-Fail +Reference function
@@ -775,14 +775,14 @@

Synopsis

Declared in <qualified.cpp>
 void
-h(int a);
+h(N::A::B a);
 
 
 

Description

-

Function with same number of parameters but different types. This should fail.

+

Documentation for the reference function

Parameters

@@ -796,7 +796,7 @@

Parameters

a -Fundamental type parameter +Qualified param diff --git a/test-files/golden-tests/javadoc/copydoc/qualified.xml b/test-files/golden-tests/javadoc/copydoc/qualified.xml index 3ab2d360a..6f94dd637 100644 --- a/test-files/golden-tests/javadoc/copydoc/qualified.xml +++ b/test-files/golden-tests/javadoc/copydoc/qualified.xml @@ -144,6 +144,23 @@ + + + + + + + + Fail + + + Function with same number of parameters but different types. This should fail. + + + Fundamental type parameter + + + @@ -161,8 +178,8 @@ - - + + @@ -195,23 +212,6 @@ - - - - - - - - Fail - - - Function with same number of parameters but different types. This should fail. - - - Fundamental type parameter - - - - + @@ -1106,13 +1106,6 @@ - + @@ -1375,13 +1375,6 @@ - + @@ -1523,13 +1523,6 @@ - + diff --git a/test-files/golden-tests/symbols/record/conditional-explicit.adoc b/test-files/golden-tests/symbols/record/conditional-explicit.adoc index 9bbad6532..466e5abff 100644 --- a/test-files/golden-tests/symbols/record/conditional-explicit.adoc +++ b/test-files/golden-tests/symbols/record/conditional-explicit.adoc @@ -52,16 +52,15 @@ Constructors Declared in `<conditional‐explicit.cpp>` -Conditionally explicit conversion from char +Implicit conversion from double [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -explicit(sizeof(T) > 4) -link:#A-2constructor-0b[A](char value); +link:#A-2constructor-00[A](double value); ---- -[.small]#link:#A-2constructor-0b[_» more..._]# +[.small]#link:#A-2constructor-00[_» more..._]# Explicit conversion from int @@ -74,15 +73,16 @@ link:#A-2constructor-01[A](int value); [.small]#link:#A-2constructor-01[_» more..._]# -Implicit conversion from double +Conditionally explicit conversion from char [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -link:#A-2constructor-00[A](double value); +explicit(sizeof(T) > 4) +link:#A-2constructor-0b[A](char value); ---- -[.small]#link:#A-2constructor-00[_» more..._]# +[.small]#link:#A-2constructor-0b[_» more..._]# Conditionally explicit conversion from other types @@ -96,10 +96,10 @@ link:#A-2constructor-02[A](U value); [.small]#link:#A-2constructor-02[_» more..._]# -[#A-2constructor-0b] +[#A-2constructor-00] == link:#A[A]::A -Conditionally explicit conversion from char +Implicit conversion from double === Synopsis @@ -107,8 +107,7 @@ Declared in `<conditional‐explicit.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -explicit(sizeof(T) > 4) -A(char value); +A(double value); ---- === Parameters @@ -146,10 +145,10 @@ A(int value); | The value to construct from |=== -[#A-2constructor-00] +[#A-2constructor-0b] == link:#A[A]::A -Implicit conversion from double +Conditionally explicit conversion from char === Synopsis @@ -157,7 +156,8 @@ Declared in `<conditional‐explicit.cpp>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- -A(double value); +explicit(sizeof(T) > 4) +A(char value); ---- === Parameters diff --git a/test-files/golden-tests/symbols/record/conditional-explicit.html b/test-files/golden-tests/symbols/record/conditional-explicit.html index 776f3004e..acd444974 100644 --- a/test-files/golden-tests/symbols/record/conditional-explicit.html +++ b/test-files/golden-tests/symbols/record/conditional-explicit.html @@ -71,13 +71,12 @@

A::A

Synopses

Declared in <conditional-explicit.cpp>
-Conditionally explicit conversion from char +Implicit conversion from double
-explicit(sizeof(T) > 4)
-A(char value);
+A(double value);
 
 
-
» more... +» more... Explicit conversion from int
@@ -87,12 +86,13 @@ 

Synopses

» more... -Implicit conversion from double +Conditionally explicit conversion from char
-A(double value);
+explicit(sizeof(T) > 4)
+A(char value);
 
 
-
» more... +» more... Conditionally explicit conversion from other types
@@ -108,9 +108,9 @@ 

Synopses

-

A::A

+

A::A

-Conditionally explicit conversion from char +Implicit conversion from double
@@ -119,8 +119,7 @@

Synopsis

Declared in <conditional-explicit.cpp>
-explicit(sizeof(T) > 4)
-A(char value);
+A(double value);
 
 
 
@@ -182,9 +181,9 @@

Parameters

-

A::A

+

A::A

-Implicit conversion from double +Conditionally explicit conversion from char
@@ -193,7 +192,8 @@

Synopsis

Declared in <conditional-explicit.cpp>
-A(double value);
+explicit(sizeof(T) > 4)
+A(char value);
 
 
 
diff --git a/test-files/golden-tests/symbols/record/conditional-explicit.xml b/test-files/golden-tests/symbols/record/conditional-explicit.xml index 6a6d3daf0..252e0ec09 100644 --- a/test-files/golden-tests/symbols/record/conditional-explicit.xml +++ b/test-files/golden-tests/symbols/record/conditional-explicit.xml @@ -6,14 +6,14 @@ - - + + - + - Conditionally explicit conversion from char + Implicit conversion from double The value to construct from @@ -34,14 +34,14 @@ - - + + - + - Implicit conversion from double + Conditionally explicit conversion from char The value to construct from