diff --git a/src/tools/clangrefactoringbackend/source/indexdataconsumer.cpp b/src/tools/clangrefactoringbackend/source/indexdataconsumer.cpp index 33ce06a0333..a1aba16555b 100644 --- a/src/tools/clangrefactoringbackend/source/indexdataconsumer.cpp +++ b/src/tools/clangrefactoringbackend/source/indexdataconsumer.cpp @@ -64,15 +64,19 @@ using SymbolKindAndTags = std::pair; class IndexingDeclVisitor : public clang::ConstDeclVisitor { public: - SymbolKindAndTags VisitTagDecl(const clang::TagDecl *declaration) + SymbolKindAndTags VisitEnumDecl(const clang::EnumDecl *declaration) { - SymbolKindAndTags result = {SymbolKind::Tag, {}}; + return {SymbolKind::Enumeration, {}};; + } + SymbolKindAndTags VisitRecordDecl(const clang::RecordDecl *declaration) + { + SymbolKindAndTags result = {SymbolKind::Record, {}}; switch (declaration->getTagKind()) { case clang::TTK_Struct: result.second.push_back(SymbolTag::Struct); break; case clang::TTK_Interface: result.second.push_back(SymbolTag::MsvcInterface); break; case clang::TTK_Union: result.second.push_back(SymbolTag::Union); break; case clang::TTK_Class: result.second.push_back(SymbolTag::Class); break; - case clang::TTK_Enum: result.second.push_back(SymbolTag::Enumeration); break; + case clang::TTK_Enum: break; // this case can never happen in a record but it is there to silent the warning } return result; diff --git a/src/tools/clangrefactoringbackend/source/symbolentry.h b/src/tools/clangrefactoringbackend/source/symbolentry.h index 64e750ddff8..47e1cba7eac 100644 --- a/src/tools/clangrefactoringbackend/source/symbolentry.h +++ b/src/tools/clangrefactoringbackend/source/symbolentry.h @@ -41,7 +41,8 @@ using SymbolIndex = long long; enum class SymbolKind : uchar { None = 0, - Tag, + Enumeration, + Record, Function, Variable, Macro @@ -50,11 +51,10 @@ enum class SymbolKind : uchar enum class SymbolTag : uchar { None = 0, - Class, - Struct, - Enumeration, - Union, - MsvcInterface + Class, + Struct, + Union, + MsvcInterface }; using SymbolTags = Utils::SizedArray; diff --git a/tests/unit/unittest/gtest-creator-printing.cpp b/tests/unit/unittest/gtest-creator-printing.cpp index 663610e3d5d..56f36b18902 100644 --- a/tests/unit/unittest/gtest-creator-printing.cpp +++ b/tests/unit/unittest/gtest-creator-printing.cpp @@ -921,10 +921,12 @@ const char *symbolKindString(SymbolKind symbolKind) using ClangBackEnd::SymbolKind; switch (symbolKind) { - case SymbolKind::None: return "SymbolKind::None"; - case SymbolKind::Tag: return "SymbolKind::Tag"; - case SymbolKind::Function: return "SymbolKind::Function"; - case SymbolKind::Macro: return "SymbolKind::Macro"; + case SymbolKind::None: return "None"; + case SymbolKind::Enumeration: return "Enumeration"; + case SymbolKind::Record: return "Record"; + case SymbolKind::Function: return "Function"; + case SymbolKind::Variable: return "Variable"; + case SymbolKind::Macro: return "Macro"; } return ""; @@ -940,9 +942,10 @@ const char *symbolTagString(SymbolTag symbolTag) using ClangBackEnd::SymbolTag; switch (symbolTag) { + case SymbolTag::None: return "None"; case SymbolTag::Class: return "Class"; case SymbolTag::Struct: return "Struct"; - case SymbolTag::Enumeration: return "Enumeration"; + case SymbolTag::Union: return "Union"; case SymbolTag::MsvcInterface: return "MsvcInterface"; } diff --git a/tests/unit/unittest/symbolscollector-test.cpp b/tests/unit/unittest/symbolscollector-test.cpp index 67aab88d0df..4bbfcbee1cc 100644 --- a/tests/unit/unittest/symbolscollector-test.cpp +++ b/tests/unit/unittest/symbolscollector-test.cpp @@ -617,7 +617,7 @@ TEST_F(SymbolsCollector, IsClassSymbol) Contains( AllOf( HasSymbolName("Class"), - HasSymbolKind(SymbolKind::Tag), + HasSymbolKind(SymbolKind::Record), HasSymbolTag(SymbolTag::Class)))); } @@ -631,7 +631,7 @@ TEST_F(SymbolsCollector, IsStructSymbol) Contains( AllOf( HasSymbolName("Struct"), - HasSymbolKind(SymbolKind::Tag), + HasSymbolKind(SymbolKind::Record), HasSymbolTag(SymbolTag::Struct)))); } @@ -646,13 +646,11 @@ TEST_F(SymbolsCollector, IsEnumerationSymbol) Contains( AllOf( HasSymbolName("Enumeration"), - HasSymbolKind(SymbolKind::Tag), - HasSymbolTag(SymbolTag::Enumeration))), + HasSymbolKind(SymbolKind::Enumeration))), Contains( AllOf( HasSymbolName("ScopedEnumeration"), - HasSymbolKind(SymbolKind::Tag), - HasSymbolTag(SymbolTag::Enumeration))))); + HasSymbolKind(SymbolKind::Enumeration))))); } TEST_F(SymbolsCollector, IsUnionSymbol) @@ -665,7 +663,7 @@ TEST_F(SymbolsCollector, IsUnionSymbol) Contains( AllOf( HasSymbolName("Union"), - HasSymbolKind(SymbolKind::Tag), + HasSymbolKind(SymbolKind::Record), HasSymbolTag(SymbolTag::Union)))); } @@ -679,7 +677,7 @@ TEST_F(SymbolsCollector, DISABLED_ON_NON_WINDOWS(IsMsvcInterfaceSymbol)) Contains( AllOf( HasSymbolName("MsvcInterface"), - HasSymbolKind(SymbolKind::Tag), + HasSymbolKind(SymbolKind::Record), HasSymbolTag(SymbolTag::MsvcInterface)))); }