mirror of
https://github.com/MaskRay/ccls.git
synced 2024-11-25 09:05:10 +00:00
indexer: add name for anonymous Enum
This commit is contained in:
parent
760f5e57ff
commit
06a04d5102
@ -947,11 +947,12 @@ public:
|
||||
}
|
||||
}
|
||||
[[fallthrough]];
|
||||
case Decl::Enum:
|
||||
case Decl::Record:
|
||||
if (auto *rd = dyn_cast<RecordDecl>(d)) {
|
||||
if (auto *tag_d = dyn_cast<TagDecl>(d)) {
|
||||
if (type->def.detailed_name[0] == '\0' && info->short_name.empty()) {
|
||||
StringRef tag;
|
||||
switch (rd->getTagKind()) {
|
||||
switch (tag_d->getTagKind()) {
|
||||
case TTK_Struct:
|
||||
tag = "struct";
|
||||
break;
|
||||
@ -968,7 +969,7 @@ public:
|
||||
tag = "enum";
|
||||
break;
|
||||
}
|
||||
if (TypedefNameDecl *td = rd->getTypedefNameForAnonDecl()) {
|
||||
if (TypedefNameDecl *td = tag_d->getTypedefNameForAnonDecl()) {
|
||||
StringRef name = td->getName();
|
||||
std::string detailed = ("anon " + tag + " " + name).str();
|
||||
type->def.detailed_name = intern(detailed);
|
||||
@ -979,7 +980,7 @@ public:
|
||||
type->def.short_name_size = name.size();
|
||||
}
|
||||
}
|
||||
if (is_def)
|
||||
if (is_def && !isa<EnumDecl>(d))
|
||||
if (auto *ord = dyn_cast<RecordDecl>(origD))
|
||||
collectRecordMembers(*type, ord);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user