9
9
//
10
10
11
11
#include " OverloadsFinalizer.hpp"
12
+ #include < mrdocs/Support/Assert.hpp>
12
13
13
14
namespace clang ::mrdocs {
14
15
@@ -93,7 +94,7 @@ findBaseClassPermutation(
93
94
94
95
void
95
96
OverloadsFinalizer::
96
- foldOverloads (SymbolID const & contextId, std::vector<SymbolID>& functionIds)
97
+ foldOverloads (SymbolID const & contextId, std::vector<SymbolID>& functionIds, bool isStatic )
97
98
{
98
99
for (auto functionIdIt = functionIds.begin ();
99
100
functionIdIt != functionIds.end ();
@@ -153,7 +154,7 @@ foldOverloads(SymbolID const& contextId, std::vector<SymbolID>& functionIds)
153
154
// FunctionInfo is not unique and there's no equivalent
154
155
// overload set in base classes, so we merge it with the
155
156
// other FunctionInfos into a new OverloadsInfo
156
- OverloadsInfo O (contextId, function->Name );
157
+ OverloadsInfo O (contextId, function->Name , function-> Access , isStatic );
157
158
addMember (O, *function);
158
159
*functionIdIt = O.id ;
159
160
auto const itOffset = functionIdIt - functionIds.begin ();
@@ -170,15 +171,15 @@ foldOverloads(SymbolID const& contextId, std::vector<SymbolID>& functionIds)
170
171
}
171
172
}
172
173
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 );
174
175
}
175
176
}
176
177
177
178
void
178
179
OverloadsFinalizer::
179
180
operator ()(NamespaceInfo& I)
180
181
{
181
- foldOverloads (I.id , I.Members .Functions );
182
+ foldOverloads (I.id , I.Members .Functions , true );
182
183
foldRecordMembers (I.Members .Records );
183
184
foldNamespaceMembers (I.Members .Namespaces );
184
185
}
@@ -203,12 +204,12 @@ operator()(RecordInfo& I)
203
204
MRDOCS_CHECK_OR (baseRecord);
204
205
operator ()(*baseRecord);
205
206
}
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 );
212
213
foldRecordMembers (I.Interface .Public .Records );
213
214
foldRecordMembers (I.Interface .Protected .Records );
214
215
foldRecordMembers (I.Interface .Private .Records );
0 commit comments