diff --git a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp index 40b944618..5132288d6 100644 --- a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp +++ b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.cpp @@ -30,6 +30,8 @@ inheritBaseMembers( RecordInterface const& base, AccessKind const A) { + auto&& members = allMembers(derived); + if (A == AccessKind::Public) { // When a class uses public member access specifier to derive from a @@ -37,8 +39,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(derivedId, derived.Public, base.Public, members); + inheritBaseMembers(derivedId, derived.Protected, base.Protected, members); } else if (A == AccessKind::Protected) { @@ -46,8 +48,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(derivedId, derived.Protected, base.Public, members); + inheritBaseMembers(derivedId, derived.Protected, base.Protected, members); } else if (A == AccessKind::Private && corpus_.config->extractPrivate) { @@ -55,28 +57,30 @@ 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(derivedId, derived.Private, base.Public, members); + inheritBaseMembers(derivedId, derived.Private, base.Protected, members); } } +template void BaseMembersFinalizer:: inheritBaseMembers( SymbolID const& derivedId, RecordTranche& derived, - RecordTranche const& base) + RecordTranche const& base, + Range allMembers) { - 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); + inheritBaseMembers(derivedId, derived.NamespaceAliases, base.NamespaceAliases, allMembers); + inheritBaseMembers(derivedId, derived.Typedefs, base.Typedefs, allMembers); + inheritBaseMembers(derivedId, derived.Records, base.Records, allMembers); + inheritBaseMembers(derivedId, derived.Enums, base.Enums, allMembers); + inheritBaseMembers(derivedId, derived.Functions, base.Functions, allMembers); + inheritBaseMembers(derivedId, derived.StaticFunctions, base.StaticFunctions, allMembers); + inheritBaseMembers(derivedId, derived.Variables, base.Variables, allMembers); + inheritBaseMembers(derivedId, derived.StaticVariables, base.StaticVariables, allMembers); + inheritBaseMembers(derivedId, derived.Concepts, base.Concepts, allMembers); + inheritBaseMembers(derivedId, derived.Guides, base.Guides, allMembers); } namespace { @@ -91,12 +95,14 @@ shouldCopy(Config const& config, Info const& M) } } +template void BaseMembersFinalizer:: inheritBaseMembers( SymbolID const& derivedId, std::vector& derived, - std::vector const& base) + std::vector const& base, + Range allMembers) { for (SymbolID const& otherID: base) { @@ -116,7 +122,7 @@ inheritBaseMembers( // Check if derived class has a member that shadows the base member auto shadowIt = std::ranges::find_if( - derived, + allMembers, [&](SymbolID const& id) { Info* infoPtr = corpus_.find(id); @@ -135,7 +141,7 @@ inheritBaseMembers( // are the same return info.Name == otherInfo.Name; }); - MRDOCS_CHECK_OR_CONTINUE(shadowIt == derived.end()); + MRDOCS_CHECK_OR_CONTINUE(shadowIt == allMembers.end()); // Not a shadow, so inherit the base member if (!shouldCopy(corpus_.config, otherInfo)) diff --git a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.hpp b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.hpp index 1b6659352..8e2d9b152 100644 --- a/src/lib/Metadata/Finalizers/BaseMembersFinalizer.hpp +++ b/src/lib/Metadata/Finalizers/BaseMembersFinalizer.hpp @@ -38,18 +38,22 @@ class BaseMembersFinalizer RecordInterface& derived, RecordInterface const& base, AccessKind A); - + + template void inheritBaseMembers( SymbolID const& derivedId, RecordTranche& derived, - RecordTranche const& base); + RecordTranche const& base, + Range allMembers); + template void inheritBaseMembers( SymbolID const& derivedId, std::vector& derived, - std::vector const& base); + std::vector const& base, + Range allMembers); 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..b464e787d 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`] @@ -546,16 +544,12 @@ class protected_derived | 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`] 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..504d4f45c 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. @@ -690,11 +689,9 @@

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. 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..e958e5d99 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 - - - @@ -517,22 +501,6 @@ - - - - - - - - - - This function should be shadowed by derived classes. - - - A base class to test inheritance and shadowing - - - @@ -581,22 +549,6 @@ - - - - - - - - - - This function should be shadowed by derived classes. - - - A base class to test inheritance and shadowing - - - 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..fcd5e7bc4 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 @@ -699,9 +678,9 @@ class protected_derived |=== | Name | Description -| link:#protected_derived-derived_shadowed-0a[`derived_shadowed`] +| 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_derived_shadowed[`do_derived_shadowed`] | This function should shadow the base class function. |=== @@ -717,16 +696,12 @@ class protected_derived | 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`] @@ -735,7 +710,7 @@ class protected_derived | This function should be inherited by derived classes. |=== -[#protected_derived-derived_shadowed-0a] +[#protected_derived-derived_shadowed] == link:#protected_derived[protected_derived]::derived_shadowed This function should shadow the base class function. @@ -754,7 +729,7 @@ derived_shadowed(); A class that should inherit functions as protected. -[#protected_derived-do_derived_shadowed-0e] +[#protected_derived-do_derived_shadowed] == link:#protected_derived[protected_derived]::do_derived_shadowed This function should shadow the base class function. @@ -830,25 +805,6 @@ base_shadowed(); A base class to test inheritance and shadowing -[#protected_derived-derived_shadowed-0f] -== link:#protected_derived[protected_derived]::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]& -derived_shadowed(); ----- - -=== Return Value - -A base class to test inheritance and shadowing - [#protected_derived-do_base_base_inherited] == link:#protected_derived[protected_derived]::do_base_base_inherited @@ -906,25 +862,6 @@ do_base_shadowed(); A base class to test inheritance and shadowing -[#protected_derived-do_derived_shadowed-06] -== link:#protected_derived[protected_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 - [#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.html b/test-files/golden-tests/config/inherit-base-members/copy.html index 781fd9edf..a0e56566d 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();
-
 
 
@@ -887,8 +862,8 @@

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. +do_derived_shadowed This function should shadow the base class function. @@ -906,11 +881,9 @@

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. @@ -921,7 +894,7 @@

Protected Member Functions

-

protected_derived::derived_shadowed

+

protected_derived::derived_shadowed

This function should shadow the base class function. @@ -945,7 +918,7 @@

Return Value

-

protected_derived::do_derived_shadowed

+

protected_derived::do_derived_shadowed

This function should shadow the base class function. @@ -1031,30 +1004,6 @@

Synopsis

base& base_shadowed(); - - -
-
-

Return Value

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

protected_derived::derived_shadowed

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

Synopsis

-
-Declared in <copy.cpp>
-
-base&
-derived_shadowed();
-
 
 
@@ -1127,30 +1076,6 @@

Synopsis

base& do_base_shadowed(); - - -
-
-

Return Value

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

protected_derived::do_derived_shadowed

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

Synopsis

-
-Declared in <copy.cpp>
-
-base&
-do_derived_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..66e1dfa69 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 - - - @@ -517,22 +501,6 @@ - - - - - - - - - - This function should be shadowed by derived classes. - - - A base class to test inheritance and shadowing - - - @@ -581,22 +549,6 @@ - - - - - - - - - - This function should be shadowed by derived classes. - - - A base class to test inheritance and shadowing - - - 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..37f959361 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] @@ -495,16 +493,12 @@ class protected_derived | 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..435ee6a9d 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. @@ -627,11 +626,9 @@

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..35d81baf1 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 - - - @@ -478,22 +462,6 @@ - - - - - - - - - - This function should be shadowed by derived classes. - - - A base class to test inheritance and shadowing - - - @@ -542,22 +510,6 @@ - - - - - - - - - - This function should be shadowed by derived classes. - - - 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..a1e631773 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`] @@ -622,16 +620,12 @@ class protected_derived | 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`] 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..6ddaebda0 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. @@ -788,11 +787,9 @@

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. 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..5783aa630 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. - - - @@ -505,19 +492,6 @@ - - - - - - - - - - This function should be shadowed by derived classes. - - - @@ -557,19 +531,6 @@ - - - - - - - - - - This function should be shadowed by derived classes. - - - 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..85d1347f1 --- /dev/null +++ b/test-files/golden-tests/symbols/record/shadowing.yml @@ -0,0 +1 @@ +extract-private: true \ No newline at end of file