Skip to content

Commit e595195

Browse files
committed
populate overloads use explicit types
#perf
1 parent 93d5d10 commit e595195

File tree

17 files changed

+262
-174
lines changed

17 files changed

+262
-174
lines changed

include/mrdocs/Metadata/Info.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@
2020
#include <mrdocs/Metadata/Javadoc.hpp>
2121
#include <mrdocs/Metadata/Specifiers.hpp>
2222
#include <mrdocs/Metadata/Symbols.hpp>
23+
#include <mrdocs/Metadata/Source.hpp>
2324
#include <mrdocs/Platform.hpp>
2425
#include <mrdocs/Support/Visitor.hpp>
2526

27+
2628
namespace clang::mrdocs {
2729

2830
/* Forward declarations
@@ -59,8 +61,7 @@ tag_invoke(
5961

6062
/** Base class with common properties of all symbols
6163
*/
62-
struct MRDOCS_VISIBLE
63-
Info
64+
struct MRDOCS_VISIBLE Info : SourceInfo
6465
{
6566
/** The unique identifier for this symbol.
6667
*/

include/mrdocs/Metadata/Info/Concept.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ namespace clang::mrdocs {
2222
*/
2323
struct ConceptInfo final
2424
: InfoCommonBase<InfoKind::Concept>
25-
, SourceInfo
2625
{
2726
/** The concepts template parameters
2827
*/

include/mrdocs/Metadata/Info/Enum.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ namespace clang::mrdocs {
2222

2323
struct EnumInfo final
2424
: InfoCommonBase<InfoKind::Enum>
25-
, SourceInfo
2625
, ScopeInfo
2726
{
2827
// Indicates whether this enum is scoped (e.g. enum class).

include/mrdocs/Metadata/Info/EnumConstant.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ namespace clang::mrdocs {
2121
*/
2222
struct EnumConstantInfo final
2323
: InfoCommonBase<InfoKind::EnumConstant>
24-
, SourceInfo
2524
{
2625
/** The initializer expression, if any
2726
*/

include/mrdocs/Metadata/Info/Field.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ namespace clang::mrdocs {
2727
*/
2828
struct FieldInfo final
2929
: InfoCommonBase<InfoKind::Field>
30-
, SourceInfo
3130
{
3231
/** Type of the field */
3332
PolymorphicValue<TypeInfo> Type;

include/mrdocs/Metadata/Info/Friend.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ namespace clang::mrdocs {
2121
*/
2222
struct FriendInfo final
2323
: InfoCommonBase<InfoKind::Friend>
24-
, SourceInfo
2524
{
2625
/** Befriended symbol.
2726
*/

include/mrdocs/Metadata/Info/Function.hpp

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ tag_invoke(
126126
// Info for functions.
127127
struct FunctionInfo final
128128
: InfoCommonBase<InfoKind::Function>
129-
, SourceInfo
130129
{
131130
/// Info about the return type of this function.
132131
PolymorphicValue<TypeInfo> ReturnType;
@@ -141,35 +140,32 @@ struct FunctionInfo final
141140
FunctionClass Class = FunctionClass::Normal;
142141

143142
NoexceptInfo Noexcept;
144-
145-
ExplicitInfo Explicit;
146-
147143
ExprInfo Requires;
148-
149144
bool IsVariadic = false;
150-
bool IsVirtual = false;
151-
bool IsVirtualAsWritten = false;
152-
bool IsPure = false;
153145
bool IsDefaulted = false;
154146
bool IsExplicitlyDefaulted = false;
155147
bool IsDeleted = false;
156148
bool IsDeletedAsWritten = false;
157149
bool IsNoReturn = false;
158150
bool HasOverrideAttr = false;
159151
bool HasTrailingReturn = false;
160-
bool IsConst = false;
161-
bool IsVolatile = false;
162-
bool IsFinal = false;
163152
bool IsNodiscard = false;
164153
bool IsExplicitObjectMemberFunction = false;
165-
166154
ConstexprKind Constexpr = ConstexprKind::None;
167155
OperatorKind OverloadedOperator = OperatorKind::None;
168156
StorageClassKind StorageClass = StorageClassKind::None;
169-
ReferenceKind RefQualifier = ReferenceKind::None;
170-
171157
std::vector<std::string> Attributes;
172158

159+
// CXXMethodDecl
160+
bool IsVirtual = false;
161+
bool IsVirtualAsWritten = false;
162+
bool IsPure = false;
163+
bool IsConst = false;
164+
bool IsVolatile = false;
165+
bool IsFinal = false;
166+
ReferenceKind RefQualifier = ReferenceKind::None;
167+
ExplicitInfo Explicit;
168+
173169
//--------------------------------------------
174170

175171
explicit FunctionInfo(SymbolID const& ID) noexcept

include/mrdocs/Metadata/Info/Guide.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ namespace clang::mrdocs {
2323
*/
2424
struct GuideInfo final
2525
: InfoCommonBase<InfoKind::Guide>
26-
, SourceInfo
2726
{
2827
/** The pattern for the deduced specialization.
2928

include/mrdocs/Metadata/Info/NamespaceAlias.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ namespace clang::mrdocs {
2020
*/
2121
struct NamespaceAliasInfo final
2222
: InfoCommonBase<InfoKind::NamespaceAlias>
23-
, SourceInfo
2423
{
2524
/** The aliased symbol. */
2625
PolymorphicValue<NameInfo> AliasedSymbol;

include/mrdocs/Metadata/Info/Record.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ tag_invoke(
7575
*/
7676
struct RecordInfo final
7777
: InfoCommonBase<InfoKind::Record>
78-
, SourceInfo
7978
, ScopeInfo
8079
{
8180
/** Kind of record this is (class, struct, or union).

0 commit comments

Comments
 (0)