diff options
-rw-r--r-- | clang-tools-extra/include-fixer/find-all-symbols/FindAllSymbols.cpp | 8 | ||||
-rw-r--r-- | clang-tools-extra/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp | 5 |
2 files changed, 9 insertions, 4 deletions
diff --git a/clang-tools-extra/include-fixer/find-all-symbols/FindAllSymbols.cpp b/clang-tools-extra/include-fixer/find-all-symbols/FindAllSymbols.cpp index b0648b2d989..15b6f91fc67 100644 --- a/clang-tools-extra/include-fixer/find-all-symbols/FindAllSymbols.cpp +++ b/clang-tools-extra/include-fixer/find-all-symbols/FindAllSymbols.cpp @@ -183,10 +183,10 @@ void FindAllSymbols::registerMatchers(MatchFinder *MatchFinder) { this); // Matchers for enum declarations. - MatchFinder->addMatcher( - enumDecl(CommonFilter, anyOf(HasNSOrTUCtxMatcher, ExternCMatcher)) - .bind("decl"), - this); + MatchFinder->addMatcher(enumDecl(CommonFilter, isDefinition(), + anyOf(HasNSOrTUCtxMatcher, ExternCMatcher)) + .bind("decl"), + this); // Matchers for enum constant declarations. // We only match the enum constants in non-scoped enum declarations which are diff --git a/clang-tools-extra/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp b/clang-tools-extra/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp index bc0d746cc6c..4a78f20650b 100644 --- a/clang-tools-extra/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp +++ b/clang-tools-extra/unittests/include-fixer/find-all-symbols/FindAllSymbolsTests.cpp @@ -334,6 +334,7 @@ TEST_F(FindAllSymbolsTest, EnumTest) { public: enum A_ENUM { X1, X2 }; }; + enum DECL : int; )"; runFindAllSymbols(Code); @@ -376,6 +377,10 @@ TEST_F(FindAllSymbolsTest, EnumTest) { {{SymbolInfo::ContextType::EnumDecl, "A_ENUM"}, {SymbolInfo::ContextType::Record, "A"}}); EXPECT_FALSE(hasSymbol(Symbol)); + + Symbol = + SymbolInfo("DECL", SymbolInfo::SymbolKind::EnumDecl, HeaderName, 9, {}); + EXPECT_FALSE(hasSymbol(Symbol)); } TEST_F(FindAllSymbolsTest, IWYUPrivatePragmaTest) { |