Skip to content

Commit e416156

Browse files
committed
replace TagTypeKind with RecordKeyKind
1 parent 194dcca commit e416156

File tree

13 files changed

+75
-75
lines changed

13 files changed

+75
-75
lines changed

include/mrdox/Metadata/Record.hpp

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,16 +115,26 @@ struct RecordScope
115115
std::vector<MemberRef> Vars;
116116
};
117117

118+
enum class RecordKeyKind
119+
{
120+
Struct,
121+
Class,
122+
Union,
123+
// KRYSTIAN NOTE: __interface is a Microsoft extension,
124+
// do we want to support it?
125+
Interface
126+
};
127+
118128
/** Metadata for struct, class, or union.
119129
*/
120130
struct RecordInfo
121131
: SymbolInfo
122132
{
123133
friend class ASTVisitor;
124134

125-
// VFALCO Use our own enumeration for this
126-
// Type of this record (struct, class, union, interface).
127-
TagTypeKind TagType = TagTypeKind::TTK_Struct;
135+
/** Kind of record this is (class, struct, or union).
136+
*/
137+
RecordKeyKind KeyKind = RecordKeyKind::Struct;
128138

129139
// When present, this record is a template or specialization.
130140
std::unique_ptr<TemplateInfo> Template;

source/-XML/CXXTags.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,12 @@ getTagName(Info const& I) noexcept
2424
case InfoType::IT_namespace:
2525
return namespaceTagName;
2626
case InfoType::IT_record:
27-
switch(static_cast<RecordInfo const&>(I).TagType)
27+
switch(static_cast<RecordInfo const&>(I).KeyKind)
2828
{
29-
case TagTypeKind::TTK_Class: return classTagName;
30-
case TagTypeKind::TTK_Struct: return structTagName;
31-
case TagTypeKind::TTK_Union: return unionTagName;
29+
case RecordKeyKind::Class: return classTagName;
30+
case RecordKeyKind::Struct: return structTagName;
31+
case RecordKeyKind::Union: return unionTagName;
32+
case RecordKeyKind::Interface: return interfaceTagName;
3233
default:
3334
break;
3435
}
@@ -43,7 +44,7 @@ getTagName(Info const& I) noexcept
4344
break;
4445
case InfoType::IT_enum:
4546
return enumTagName;
46-
case InfoType::IT_variable:
47+
case InfoType::IT_variable:
4748
return varTagName;
4849
default:
4950
break;

source/-XML/CXXTags.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ constexpr llvm::StringRef javadocTagName = "doc";
4141
constexpr llvm::StringRef enumTagName = "enum";
4242
constexpr llvm::StringRef friendTagName = "friend";
4343
constexpr llvm::StringRef functionTagName = "function";
44+
constexpr llvm::StringRef interfaceTagName = "interface";
4445
constexpr llvm::StringRef namespaceTagName = "namespace";
4546
constexpr llvm::StringRef paramTagName = "param";
4647
constexpr llvm::StringRef returnTagName = "return";

source/-XML/XMLWriter.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -371,11 +371,12 @@ writeRecord(
371371
openTemplate(I.Template);
372372

373373
llvm::StringRef tagName;
374-
switch(I.TagType)
374+
switch(I.KeyKind)
375375
{
376-
case TagTypeKind::TTK_Class: tagName = classTagName; break;
377-
case TagTypeKind::TTK_Struct: tagName = structTagName; break;
378-
case TagTypeKind::TTK_Union: tagName = unionTagName; break;
376+
case RecordKeyKind::Class: tagName = classTagName; break;
377+
case RecordKeyKind::Struct: tagName = structTagName; break;
378+
case RecordKeyKind::Union: tagName = unionTagName; break;
379+
case RecordKeyKind::Interface: tagName = interfaceTagName; break;
379380
default:
380381
Assert(false);
381382
}

source/-adoc/AdocWriter.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ write(
251251
"\n" <<
252252
"[,cpp]\n"
253253
"----\n" <<
254-
tagToString(I.TagType) << " " << I.Name;
254+
recordKeyToString(I.KeyKind) << " " << I.Name;
255255
if(! I.Bases.empty())
256256
{
257257
os_ << "\n : ";
@@ -846,17 +846,16 @@ endSection()
846846

847847
llvm::StringRef
848848
AdocWriter::
849-
tagToString(TagTypeKind k) noexcept
849+
recordKeyToString(RecordKeyKind k) noexcept
850850
{
851851
switch(k)
852852
{
853-
case TagTypeKind::TTK_Struct: return "struct";
854-
case TagTypeKind::TTK_Interface: return "__interface";
855-
case TagTypeKind::TTK_Union: return "union";
856-
case TagTypeKind::TTK_Class: return "class";
857-
case TagTypeKind::TTK_Enum: return "enum";
853+
case RecordKeyKind::Struct: return "struct";
854+
case RecordKeyKind::Interface: return "__interface";
855+
case RecordKeyKind::Union: return "union";
856+
case RecordKeyKind::Class: return "class";
858857
default:
859-
llvm_unreachable("unknown TagTypeKind");
858+
llvm_unreachable("unknown RecordKeyKind");
860859
}
861860
}
862861

source/-adoc/AdocWriter.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ class AdocWriter
141141
void beginSection(llvm::StringRef name);
142142
void endSection();
143143

144-
static llvm::StringRef tagToString(TagTypeKind k) noexcept;
144+
static llvm::StringRef recordKeyToString(RecordKeyKind k) noexcept;
145145

146146
//--------------------------------------------
147147

source/AST/ASTVisitor.cpp

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,26 @@ buildRecord(
712712
I.DefLoc.emplace(line, File_, IsFileInRootDir_);
713713
else
714714
I.Loc.emplace_back(line, File_, IsFileInRootDir_);
715-
I.TagType = D->getTagKind();
715+
716+
switch(D->getTagKind())
717+
{
718+
case TagTypeKind::TTK_Struct:
719+
I.KeyKind = RecordKeyKind::Struct;
720+
break;
721+
case TagTypeKind::TTK_Class:
722+
I.KeyKind = RecordKeyKind::Class;
723+
break;
724+
case TagTypeKind::TTK_Union:
725+
I.KeyKind = RecordKeyKind::Union;
726+
break;
727+
// KRYSTIAN NOTE: do want to support __interface?
728+
// it is a Microsoft extension.
729+
case TagTypeKind::TTK_Interface:
730+
I.KeyKind = RecordKeyKind::Interface;
731+
break;
732+
default:
733+
llvm_unreachable("unsupported TagTypeKind");
734+
}
716735

717736
// These are from CXXRecordDecl::isEffectivelyFinal()
718737
I.specs.isFinal = D->template hasAttr<FinalAttr>();

source/AST/AnyBlock.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -899,8 +899,8 @@ class RecordBlock
899899
{
900900
switch(ID)
901901
{
902-
case RECORD_TAG_TYPE:
903-
return decodeRecord(R, I->TagType, Blob);
902+
case RECORD_KEY_KIND:
903+
return decodeRecord(R, I->KeyKind, Blob);
904904
case RECORD_IS_TYPE_DEF:
905905
return decodeRecord(R, I->IsTypeDef, Blob);
906906
case RECORD_BITS:

source/AST/BitcodeIDs.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ enum RecordID
110110
RECORD_BITS,
111111
RECORD_FRIENDS,
112112
RECORD_IS_TYPE_DEF,
113-
RECORD_TAG_TYPE,
113+
RECORD_KEY_KIND,
114114
REFERENCE_FIELD,
115115
REFERENCE_NAME,
116116
REFERENCE_TYPE,

source/AST/BitcodeWriter.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ RecordIDNameMap = []()
266266
{JAVADOC_NODE_STYLE, {"JavadocNodeStyle", &Integer32Abbrev}},
267267
{JAVADOC_NODE_ADMONISH, {"JavadocNodeAdmonish", &Integer32Abbrev}},
268268
{JAVADOC_PARAM_DIRECTION, {"JavadocParamDirection", &Integer32Abbrev}},
269-
{RECORD_TAG_TYPE, {"TagType", &Integer32Abbrev}},
269+
{RECORD_KEY_KIND, {"KeyKind", &Integer32Abbrev}},
270270
{RECORD_IS_TYPE_DEF, {"IsTypeDef", &BoolAbbrev}},
271271
{RECORD_BITS, {"Bits", &Integer32ArrayAbbrev}},
272272
{RECORD_FRIENDS, {"Friends", &SymbolIDsAbbrev}},
@@ -347,7 +347,7 @@ RecordsByBlock{
347347
{}},
348348
// RecordInfo
349349
{BI_RECORD_BLOCK_ID,
350-
{RECORD_TAG_TYPE, RECORD_IS_TYPE_DEF, RECORD_BITS,
350+
{RECORD_KEY_KIND, RECORD_IS_TYPE_DEF, RECORD_BITS,
351351
RECORD_FRIENDS, RECORD_ENUMS, RECORD_FUNCTIONS,
352352
RECORD_RECORDS, RECORD_TYPES, RECORD_VARS, RECORD_FIELDS}},
353353
// std::vector<Reference>
@@ -961,7 +961,7 @@ emitBlock(
961961
StreamSubBlockGuard Block(Stream, BI_RECORD_BLOCK_ID);
962962
emitInfoPart(I);
963963
emitSymbolPart(I);
964-
emitRecord(I.TagType, RECORD_TAG_TYPE);
964+
emitRecord(I.KeyKind, RECORD_KEY_KIND);
965965
emitRecord(I.IsTypeDef, RECORD_IS_TYPE_DEF);
966966
emitRecord({I.specs.raw}, RECORD_BITS);
967967
for (const auto& B : I.Bases)

0 commit comments

Comments
 (0)