diff --git a/src/tools/clangrefactoringbackend/source/collectmacrossourcefilecallbacks.h b/src/tools/clangrefactoringbackend/source/collectmacrossourcefilecallbacks.h index c3a582d1673..b824f157d78 100644 --- a/src/tools/clangrefactoringbackend/source/collectmacrossourcefilecallbacks.h +++ b/src/tools/clangrefactoringbackend/source/collectmacrossourcefilecallbacks.h @@ -60,9 +60,11 @@ public: m_sourceFiles = filePathIds; } - void clearSourceFiles() + void clear() { m_sourceFiles.clear(); + m_usedMacros.clear(); + m_fileInformations.clear(); } const UsedMacros &usedMacros() const diff --git a/src/tools/clangrefactoringbackend/source/symbolscollector.cpp b/src/tools/clangrefactoringbackend/source/symbolscollector.cpp index fbf75a66c8b..789bd3c743d 100644 --- a/src/tools/clangrefactoringbackend/source/symbolscollector.cpp +++ b/src/tools/clangrefactoringbackend/source/symbolscollector.cpp @@ -48,7 +48,7 @@ void SymbolsCollector::addUnsavedFiles(const V2::FileContainers &unsavedFiles) void SymbolsCollector::clear() { - m_collectMacrosSourceFileCallbacks.clearSourceFiles(); + m_collectMacrosSourceFileCallbacks.clear(); m_symbolEntries.clear(); m_sourceLocationEntries.clear(); m_clangTool = ClangTool(); diff --git a/tests/unit/unittest/symbolscollector-test.cpp b/tests/unit/unittest/symbolscollector-test.cpp index 0f43249bf24..fb545d2411a 100644 --- a/tests/unit/unittest/symbolscollector-test.cpp +++ b/tests/unit/unittest/symbolscollector-test.cpp @@ -303,6 +303,26 @@ TEST_F(SymbolsCollector, ClearSourceLocations) ASSERT_THAT(collector.sourceLocations(), IsEmpty()); } +TEST_F(SymbolsCollector, ClearFileInformation) +{ + collector.addFiles({filePathId(TESTDATA_DIR "/symbolscollector_main.cpp")}, {"cc"}); + collector.collectSymbols(); + + collector.clear(); + + ASSERT_THAT(collector.fileInformations(), IsEmpty()); +} + +TEST_F(SymbolsCollector, ClearUsedMacros) +{ + collector.addFiles({filePathId(TESTDATA_DIR "/symbolscollector_defines.h")}, {"cc"}); + collector.collectSymbols(); + + collector.clear(); + + ASSERT_THAT(collector.usedMacros(), IsEmpty()); +} + TEST_F(SymbolsCollector, DontCollectSymbolsAfterFilesAreCleared) { collector.addFiles({filePathId(TESTDATA_DIR "/symbolscollector_main.cpp")}, {"cc"}); @@ -323,6 +343,26 @@ TEST_F(SymbolsCollector, DontCollectSourceFilesAfterFilesAreCleared) ASSERT_THAT(collector.sourceFiles(), IsEmpty()); } +TEST_F(SymbolsCollector, DontCollectFileInformationAfterFilesAreCleared) +{ + collector.addFiles({filePathId(TESTDATA_DIR "/symbolscollector_main.cpp")}, {"cc"}); + + collector.clear(); + collector.collectSymbols(); + + ASSERT_THAT(collector.fileInformations(), IsEmpty()); +} + +TEST_F(SymbolsCollector, DontCollectUsedMacrosAfterFilesAreCleared) +{ + collector.addFiles({filePathId(TESTDATA_DIR "/symbolscollector_main.cpp")}, {"cc"}); + + collector.clear(); + collector.collectSymbols(); + + ASSERT_THAT(collector.usedMacros(), IsEmpty()); +} + TEST_F(SymbolsCollector, CollectUsedMacrosWithExternalDefine) { auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h");