99//
1010
1111#include " OverloadsFinalizer.hpp"
12+ #include < mrdocs/Support/Assert.hpp>
1213
1314namespace clang ::mrdocs {
1415
@@ -93,7 +94,7 @@ findBaseClassPermutation(
9394
9495void
9596OverloadsFinalizer::
96- foldOverloads (SymbolID const & contextId, std::vector<SymbolID>& functionIds)
97+ foldOverloads (SymbolID const & contextId, std::vector<SymbolID>& functionIds, bool isStatic )
9798{
9899 for (auto functionIdIt = functionIds.begin ();
99100 functionIdIt != functionIds.end ();
@@ -153,7 +154,7 @@ foldOverloads(SymbolID const& contextId, std::vector<SymbolID>& functionIds)
153154 // FunctionInfo is not unique and there's no equivalent
154155 // overload set in base classes, so we merge it with the
155156 // other FunctionInfos into a new OverloadsInfo
156- OverloadsInfo O (contextId, function->Name );
157+ OverloadsInfo O (contextId, function->Name , function-> Access , isStatic );
157158 addMember (O, *function);
158159 *functionIdIt = O.id ;
159160 auto const itOffset = functionIdIt - functionIds.begin ();
@@ -170,15 +171,15 @@ foldOverloads(SymbolID const& contextId, std::vector<SymbolID>& functionIds)
170171 }
171172 }
172173 functionIdIt = functionIds.begin () + itOffset;
173- corpus_.info_ .emplace (std::make_unique<OverloadsInfo>(std::move (O)));
174+ MRDOCS_ASSERT ( corpus_.info_ .emplace (std::make_unique<OverloadsInfo>(std::move (O))). second );
174175 }
175176}
176177
177178void
178179OverloadsFinalizer::
179180operator ()(NamespaceInfo& I)
180181{
181- foldOverloads (I.id , I.Members .Functions );
182+ foldOverloads (I.id , I.Members .Functions , true );
182183 foldRecordMembers (I.Members .Records );
183184 foldNamespaceMembers (I.Members .Namespaces );
184185}
@@ -203,12 +204,12 @@ operator()(RecordInfo& I)
203204 MRDOCS_CHECK_OR (baseRecord);
204205 operator ()(*baseRecord);
205206 }
206- foldOverloads (I.id , I.Interface .Public .Functions );
207- foldOverloads (I.id , I.Interface .Protected .Functions );
208- foldOverloads (I.id , I.Interface .Private .Functions );
209- foldOverloads (I.id , I.Interface .Public .StaticFunctions );
210- foldOverloads (I.id , I.Interface .Protected .StaticFunctions );
211- foldOverloads (I.id , I.Interface .Private .StaticFunctions );
207+ foldOverloads (I.id , I.Interface .Public .Functions , false );
208+ foldOverloads (I.id , I.Interface .Protected .Functions , false );
209+ foldOverloads (I.id , I.Interface .Private .Functions , false );
210+ foldOverloads (I.id , I.Interface .Public .StaticFunctions , true );
211+ foldOverloads (I.id , I.Interface .Protected .StaticFunctions , true );
212+ foldOverloads (I.id , I.Interface .Private .StaticFunctions , true );
212213 foldRecordMembers (I.Interface .Public .Records );
213214 foldRecordMembers (I.Interface .Protected .Records );
214215 foldRecordMembers (I.Interface .Private .Records );
0 commit comments