Clang: Rename defineName in macroName

Change-Id: Iaf8da991032e5ed4726384c051290a77887351fa
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This commit is contained in:
Marco Bubke
2018-01-25 15:20:47 +01:00
parent cbe9a665c5
commit 8b85b095b2
26 changed files with 178 additions and 178 deletions

View File

@@ -40,12 +40,12 @@ public:
ProjectPartContainer() = default; ProjectPartContainer() = default;
ProjectPartContainer(Utils::SmallString &&projectPartId, ProjectPartContainer(Utils::SmallString &&projectPartId,
Utils::SmallStringVector &&arguments, Utils::SmallStringVector &&arguments,
Utils::SmallStringVector &&defineNames, Utils::SmallStringVector &&macroNames,
FilePathIds &&headerPathIds, FilePathIds &&headerPathIds,
FilePathIds &&sourcePathIds) FilePathIds &&sourcePathIds)
: m_projectPartId(std::move(projectPartId)), : m_projectPartId(std::move(projectPartId)),
m_arguments(std::move(arguments)), m_arguments(std::move(arguments)),
m_defineNames(std::move(defineNames)), m_macroNames(std::move(macroNames)),
m_headerPathIds(std::move(headerPathIds)), m_headerPathIds(std::move(headerPathIds)),
m_sourcePathIds(std::move(sourcePathIds)) m_sourcePathIds(std::move(sourcePathIds))
{ {
@@ -66,9 +66,9 @@ public:
return std::move(m_arguments); return std::move(m_arguments);
} }
const Utils::SmallStringVector &defineNames() const const Utils::SmallStringVector &macroNames() const
{ {
return m_defineNames; return m_macroNames;
} }
const FilePathIds &sourcePathIds() const const FilePathIds &sourcePathIds() const
@@ -85,7 +85,7 @@ public:
{ {
out << container.m_projectPartId; out << container.m_projectPartId;
out << container.m_arguments; out << container.m_arguments;
out << container.m_defineNames; out << container.m_macroNames;
out << container.m_headerPathIds; out << container.m_headerPathIds;
out << container.m_sourcePathIds; out << container.m_sourcePathIds;
@@ -96,7 +96,7 @@ public:
{ {
in >> container.m_projectPartId; in >> container.m_projectPartId;
in >> container.m_arguments; in >> container.m_arguments;
in >> container.m_defineNames; in >> container.m_macroNames;
in >> container.m_headerPathIds; in >> container.m_headerPathIds;
in >> container.m_sourcePathIds; in >> container.m_sourcePathIds;
@@ -107,7 +107,7 @@ public:
{ {
return first.m_projectPartId == second.m_projectPartId return first.m_projectPartId == second.m_projectPartId
&& first.m_arguments == second.m_arguments && first.m_arguments == second.m_arguments
&& first.m_defineNames == second.m_defineNames && first.m_macroNames == second.m_macroNames
&& first.m_headerPathIds == second.m_headerPathIds && first.m_headerPathIds == second.m_headerPathIds
&& first.m_sourcePathIds == second.m_sourcePathIds; && first.m_sourcePathIds == second.m_sourcePathIds;
} }
@@ -116,12 +116,12 @@ public:
{ {
return std::tie(first.m_projectPartId, return std::tie(first.m_projectPartId,
first.m_arguments, first.m_arguments,
first.m_defineNames, first.m_macroNames,
first.m_headerPathIds, first.m_headerPathIds,
first.m_sourcePathIds) first.m_sourcePathIds)
< std::tie(second.m_projectPartId, < std::tie(second.m_projectPartId,
second.m_arguments, second.m_arguments,
second.m_defineNames, second.m_macroNames,
second.m_headerPathIds, second.m_headerPathIds,
second.m_sourcePathIds); second.m_sourcePathIds);
} }
@@ -134,7 +134,7 @@ public:
private: private:
Utils::SmallString m_projectPartId; Utils::SmallString m_projectPartId;
Utils::SmallStringVector m_arguments; Utils::SmallStringVector m_arguments;
Utils::SmallStringVector m_defineNames; Utils::SmallStringVector m_macroNames;
FilePathIds m_headerPathIds; FilePathIds m_headerPathIds;
FilePathIds m_sourcePathIds; FilePathIds m_sourcePathIds;
}; };

View File

@@ -47,7 +47,7 @@ public:
createDirectoriesTable(); createDirectoriesTable();
createProjectPartsTable(); createProjectPartsTable();
createProjectPartsSourcesTable(); createProjectPartsSourcesTable();
createUsedDefinesTable(); createUsedMacrosTable();
transaction.commit(); transaction.commit();
} }
@@ -131,16 +131,16 @@ public:
table.initialize(database); table.initialize(database);
} }
void createUsedDefinesTable() void createUsedMacrosTable()
{ {
Sqlite::Table table; Sqlite::Table table;
table.setUseIfNotExists(true); table.setUseIfNotExists(true);
table.setName("usedDefines"); table.setName("usedMacros");
table.addColumn("usedDefineId", Sqlite::ColumnType::Integer, Sqlite::Contraint::PrimaryKey); table.addColumn("usedMacroId", Sqlite::ColumnType::Integer, Sqlite::Contraint::PrimaryKey);
const Sqlite::Column &sourceIdColumn = table.addColumn("sourceId", Sqlite::ColumnType::Integer); const Sqlite::Column &sourceIdColumn = table.addColumn("sourceId", Sqlite::ColumnType::Integer);
const Sqlite::Column &defineNameColumn = table.addColumn("defineName", Sqlite::ColumnType::Text); const Sqlite::Column &macroNameColumn = table.addColumn("macroName", Sqlite::ColumnType::Text);
table.addIndex({sourceIdColumn, defineNameColumn}); table.addIndex({sourceIdColumn, macroNameColumn});
table.addIndex({defineNameColumn}); table.addIndex({macroNameColumn});
table.initialize(database); table.initialize(database);
} }

View File

@@ -121,7 +121,7 @@ QStringList ProjectUpdater::compilerArguments(CppTools::ProjectPart *projectPart
return builder.build(CppTools::ProjectFile::CXXHeader, CompilerOptionsBuilder::PchUsage::None); return builder.build(CppTools::ProjectFile::CXXHeader, CompilerOptionsBuilder::PchUsage::None);
} }
Utils::SmallStringVector ProjectUpdater::createDefineNames(CppTools::ProjectPart *projectPart) Utils::SmallStringVector ProjectUpdater::createMacroNames(CppTools::ProjectPart *projectPart)
{ {
return Utils::transform<Utils::SmallStringVector>(projectPart->projectMacros, return Utils::transform<Utils::SmallStringVector>(projectPart->projectMacros,
[] (const ProjectExplorer::Macro &macro) { [] (const ProjectExplorer::Macro &macro) {
@@ -139,7 +139,7 @@ ClangBackEnd::V2::ProjectPartContainer ProjectUpdater::toProjectPartContainer(
return ClangBackEnd::V2::ProjectPartContainer(projectPart->displayName, return ClangBackEnd::V2::ProjectPartContainer(projectPart->displayName,
Utils::SmallStringVector(arguments), Utils::SmallStringVector(arguments),
createDefineNames(projectPart), createMacroNames(projectPart),
std::move(headerAndSources.headers), std::move(headerAndSources.headers),
std::move(headerAndSources.sources)); std::move(headerAndSources.sources));
} }

View File

@@ -73,7 +73,7 @@ unittest_public:
void addToHeaderAndSources(HeaderAndSources &headerAndSources, void addToHeaderAndSources(HeaderAndSources &headerAndSources,
const CppTools::ProjectFile &projectFile) const; const CppTools::ProjectFile &projectFile) const;
static QStringList compilerArguments(CppTools::ProjectPart *projectPart); static QStringList compilerArguments(CppTools::ProjectPart *projectPart);
static Utils::SmallStringVector createDefineNames(CppTools::ProjectPart *projectPart); static Utils::SmallStringVector createMacroNames(CppTools::ProjectPart *projectPart);
static Utils::PathStringVector createExcludedPaths( static Utils::PathStringVector createExcludedPaths(
const ClangBackEnd::V2::FileContainers &generatedFiles); const ClangBackEnd::V2::FileContainers &generatedFiles);

View File

@@ -14,8 +14,8 @@ HEADERS += \
$$PWD/symbolindexinginterface.h \ $$PWD/symbolindexinginterface.h \
$$PWD/collectmacrospreprocessorcallbacks.h \ $$PWD/collectmacrospreprocessorcallbacks.h \
$$PWD/projectpartentry.h \ $$PWD/projectpartentry.h \
$$PWD/useddefines.h \ $$PWD/symbolsvisitorbase.h \
$$PWD/symbolsvisitorbase.h $$PWD/usedmacro.h
!isEmpty(LIBTOOLING_LIBS) { !isEmpty(LIBTOOLING_LIBS) {
SOURCES += \ SOURCES += \

View File

@@ -29,7 +29,7 @@
#include "sourcelocationsutils.h" #include "sourcelocationsutils.h"
#include "sourcelocationentry.h" #include "sourcelocationentry.h"
#include "symbolentry.h" #include "symbolentry.h"
#include "useddefines.h" #include "usedmacro.h"
#include <filepath.h> #include <filepath.h>
#include <filepathid.h> #include <filepathid.h>
@@ -47,7 +47,7 @@ public:
CollectMacrosPreprocessorCallbacks(SymbolEntries &symbolEntries, CollectMacrosPreprocessorCallbacks(SymbolEntries &symbolEntries,
SourceLocationEntries &sourceLocationEntries, SourceLocationEntries &sourceLocationEntries,
FilePathIds &sourceFiles, FilePathIds &sourceFiles,
UsedDefines &usedDefines, UsedMacros &usedMacros,
FilePathCachingInterface &filePathCache, FilePathCachingInterface &filePathCache,
const clang::SourceManager &sourceManager, const clang::SourceManager &sourceManager,
std::shared_ptr<clang::Preprocessor> &&preprocessor) std::shared_ptr<clang::Preprocessor> &&preprocessor)
@@ -56,7 +56,7 @@ public:
m_symbolEntries(symbolEntries), m_symbolEntries(symbolEntries),
m_sourceLocationEntries(sourceLocationEntries), m_sourceLocationEntries(sourceLocationEntries),
m_sourceFiles(sourceFiles), m_sourceFiles(sourceFiles),
m_usedDefines(usedDefines) m_usedMacros(usedMacros)
{ {
} }
@@ -87,7 +87,7 @@ public:
const clang::Token &macroNameToken, const clang::Token &macroNameToken,
const clang::MacroDefinition &macroDefinition) override const clang::MacroDefinition &macroDefinition) override
{ {
addUsedDefine(macroNameToken, macroDefinition); addUsedMacro(macroNameToken, macroDefinition);
addMacroAsSymbol(macroNameToken, addMacroAsSymbol(macroNameToken,
firstMacroInfo(macroDefinition.getLocalDirective()), firstMacroInfo(macroDefinition.getLocalDirective()),
SymbolType::MacroUsage); SymbolType::MacroUsage);
@@ -97,7 +97,7 @@ public:
const clang::Token &macroNameToken, const clang::Token &macroNameToken,
const clang::MacroDefinition &macroDefinition) override const clang::MacroDefinition &macroDefinition) override
{ {
addUsedDefine( macroNameToken, macroDefinition); addUsedMacro( macroNameToken, macroDefinition);
addMacroAsSymbol(macroNameToken, addMacroAsSymbol(macroNameToken,
firstMacroInfo(macroDefinition.getLocalDirective()), firstMacroInfo(macroDefinition.getLocalDirective()),
SymbolType::MacroUsage); SymbolType::MacroUsage);
@@ -107,7 +107,7 @@ public:
const clang::MacroDefinition &macroDefinition, const clang::MacroDefinition &macroDefinition,
clang::SourceRange) override clang::SourceRange) override
{ {
addUsedDefine(macroNameToken, macroDefinition); addUsedMacro(macroNameToken, macroDefinition);
addMacroAsSymbol(macroNameToken, addMacroAsSymbol(macroNameToken,
firstMacroInfo(macroDefinition.getLocalDirective()), firstMacroInfo(macroDefinition.getLocalDirective()),
SymbolType::MacroUsage); SymbolType::MacroUsage);
@@ -133,7 +133,7 @@ public:
clang::SourceRange, clang::SourceRange,
const clang::MacroArgs *) override const clang::MacroArgs *) override
{ {
addUsedDefine(macroNameToken, macroDefinition); addUsedMacro(macroNameToken, macroDefinition);
addMacroAsSymbol(macroNameToken, addMacroAsSymbol(macroNameToken,
firstMacroInfo(macroDefinition.getLocalDirective()), firstMacroInfo(macroDefinition.getLocalDirective()),
SymbolType::MacroUsage); SymbolType::MacroUsage);
@@ -142,63 +142,63 @@ public:
void EndOfMainFile() override void EndOfMainFile() override
{ {
filterOutHeaderGuards(); filterOutHeaderGuards();
mergeUsedDefines(); mergeUsedMacros();
filterOutExports(); filterOutExports();
} }
void filterOutHeaderGuards() void filterOutHeaderGuards()
{ {
auto partitionPoint = std::stable_partition(m_maybeUsedDefines.begin(), auto partitionPoint = std::stable_partition(m_maybeUsedMacros.begin(),
m_maybeUsedDefines.end(), m_maybeUsedMacros.end(),
[&] (const UsedDefine &usedDefine) { [&] (const UsedMacro &usedMacro) {
llvm::StringRef id{usedDefine.defineName.data(), usedDefine.defineName.size()}; llvm::StringRef id{usedMacro.macroName.data(), usedMacro.macroName.size()};
clang::IdentifierInfo &identifierInfo = m_preprocessor->getIdentifierTable().get(id); clang::IdentifierInfo &identifierInfo = m_preprocessor->getIdentifierTable().get(id);
clang::MacroInfo *macroInfo = m_preprocessor->getMacroInfo(&identifierInfo); clang::MacroInfo *macroInfo = m_preprocessor->getMacroInfo(&identifierInfo);
return !macroInfo || !macroInfo->isUsedForHeaderGuard(); return !macroInfo || !macroInfo->isUsedForHeaderGuard();
}); });
m_maybeUsedDefines.erase(partitionPoint, m_maybeUsedDefines.end()); m_maybeUsedMacros.erase(partitionPoint, m_maybeUsedMacros.end());
} }
void filterOutExports() void filterOutExports()
{ {
auto partitionPoint = std::stable_partition(m_usedDefines.begin(), auto partitionPoint = std::stable_partition(m_usedMacros.begin(),
m_usedDefines.end(), m_usedMacros.end(),
[&] (const UsedDefine &usedDefine) { [&] (const UsedMacro &usedMacro) {
return !usedDefine.defineName.contains("EXPORT"); return !usedMacro.macroName.contains("EXPORT");
}); });
m_usedDefines.erase(partitionPoint, m_usedDefines.end()); m_usedMacros.erase(partitionPoint, m_usedMacros.end());
} }
void mergeUsedDefines() void mergeUsedMacros()
{ {
m_usedDefines.reserve(m_usedDefines.size() + m_maybeUsedDefines.size()); m_usedMacros.reserve(m_usedMacros.size() + m_maybeUsedMacros.size());
auto insertionPoint = m_usedDefines.insert(m_usedDefines.end(), auto insertionPoint = m_usedMacros.insert(m_usedMacros.end(),
m_maybeUsedDefines.begin(), m_maybeUsedMacros.begin(),
m_maybeUsedDefines.end()); m_maybeUsedMacros.end());
std::inplace_merge(m_usedDefines.begin(), insertionPoint, m_usedDefines.end()); std::inplace_merge(m_usedMacros.begin(), insertionPoint, m_usedMacros.end());
} }
static void addUsedDefine(UsedDefine &&usedDefine, UsedDefines &usedDefines) static void addUsedMacro(UsedMacro &&usedMacro, UsedMacros &usedMacros)
{ {
auto found = std::lower_bound(usedDefines.begin(), auto found = std::lower_bound(usedMacros.begin(),
usedDefines.end(), usedDefine); usedMacros.end(), usedMacro);
if (found == usedDefines.end() || *found != usedDefine) if (found == usedMacros.end() || *found != usedMacro)
usedDefines.insert(found, std::move(usedDefine)); usedMacros.insert(found, std::move(usedMacro));
} }
void addUsedDefine(const clang::Token &macroNameToken, void addUsedMacro(const clang::Token &macroNameToken,
const clang::MacroDefinition &macroDefinition) const clang::MacroDefinition &macroDefinition)
{ {
clang::MacroInfo *macroInfo = macroDefinition.getMacroInfo(); clang::MacroInfo *macroInfo = macroDefinition.getMacroInfo();
UsedDefine usedDefine{macroNameToken.getIdentifierInfo()->getName(), UsedMacro usedMacro{macroNameToken.getIdentifierInfo()->getName(),
filePathId(macroNameToken.getLocation())}; filePathId(macroNameToken.getLocation())};
if (macroInfo) if (macroInfo)
addUsedDefine(std::move(usedDefine), m_usedDefines); addUsedMacro(std::move(usedMacro), m_usedMacros);
else else
addUsedDefine(std::move(usedDefine), m_maybeUsedDefines); addUsedMacro(std::move(usedMacro), m_maybeUsedMacros);
} }
static const clang::MacroInfo *firstMacroInfo(const clang::MacroDirective *macroDirective) static const clang::MacroInfo *firstMacroInfo(const clang::MacroDirective *macroDirective)
@@ -258,12 +258,12 @@ public:
} }
private: private:
UsedDefines m_maybeUsedDefines; UsedMacros m_maybeUsedMacros;
std::shared_ptr<clang::Preprocessor> m_preprocessor; std::shared_ptr<clang::Preprocessor> m_preprocessor;
SymbolEntries &m_symbolEntries; SymbolEntries &m_symbolEntries;
SourceLocationEntries &m_sourceLocationEntries; SourceLocationEntries &m_sourceLocationEntries;
FilePathIds &m_sourceFiles; FilePathIds &m_sourceFiles;
UsedDefines &m_usedDefines; UsedMacros &m_usedMacros;
bool m_skipInclude = false; bool m_skipInclude = false;
}; };

View File

@@ -37,7 +37,7 @@ bool CollectMacrosSourceFileCallbacks::handleBeginSource(clang::CompilerInstance
m_symbolEntries, m_symbolEntries,
m_sourceLocationEntries, m_sourceLocationEntries,
m_sourceFiles, m_sourceFiles,
m_usedDefines, m_usedMacros,
m_filePathCache, m_filePathCache,
compilerInstance.getSourceManager(), compilerInstance.getSourceManager(),
compilerInstance.getPreprocessorPtr()); compilerInstance.getPreprocessorPtr());

View File

@@ -27,7 +27,7 @@
#include "sourcelocationentry.h" #include "sourcelocationentry.h"
#include "symbolentry.h" #include "symbolentry.h"
#include "useddefines.h" #include "usedmacro.h"
#include <filepathcachinginterface.h> #include <filepathcachinginterface.h>
@@ -64,14 +64,14 @@ public:
m_sourceFiles.clear(); m_sourceFiles.clear();
} }
const UsedDefines &usedDefines() const const UsedMacros &usedMacros() const
{ {
return m_usedDefines; return m_usedMacros;
} }
private: private:
FilePathIds m_sourceFiles; FilePathIds m_sourceFiles;
UsedDefines m_usedDefines; UsedMacros m_usedMacros;
SymbolEntries &m_symbolEntries; SymbolEntries &m_symbolEntries;
SourceLocationEntries &m_sourceLocationEntries; SourceLocationEntries &m_sourceLocationEntries;
FilePathCachingInterface &m_filePathCache; FilePathCachingInterface &m_filePathCache;

View File

@@ -81,14 +81,14 @@ public:
return table; return table;
} }
Sqlite::Table createNewUsedDefinesTable() const Sqlite::Table createNewUsedMacrosTable() const
{ {
Sqlite::Table table; Sqlite::Table table;
table.setName("newUsedDefines"); table.setName("newUsedMacros");
table.setUseTemporaryTable(true); table.setUseTemporaryTable(true);
const Sqlite::Column &sourceIdColumn = table.addColumn("sourceId", Sqlite::ColumnType::Integer); const Sqlite::Column &sourceIdColumn = table.addColumn("sourceId", Sqlite::ColumnType::Integer);
const Sqlite::Column &defineNameColumn = table.addColumn("defineName", Sqlite::ColumnType::Text); const Sqlite::Column &macroNameColumn = table.addColumn("macroName", Sqlite::ColumnType::Text);
table.addIndex({sourceIdColumn, defineNameColumn}); table.addIndex({sourceIdColumn, macroNameColumn});
table.initialize(database); table.initialize(database);
@@ -100,7 +100,7 @@ public:
Database &database; Database &database;
Sqlite::Table newSymbolsTablet{createNewSymbolsTable()}; Sqlite::Table newSymbolsTablet{createNewSymbolsTable()};
Sqlite::Table newLocationsTable{createNewLocationsTable()}; Sqlite::Table newLocationsTable{createNewLocationsTable()};
Sqlite::Table newUsedDefineTable{createNewUsedDefinesTable()}; Sqlite::Table newUsedMacroTable{createNewUsedMacrosTable()};
WriteStatement insertSymbolsToNewSymbolsStatement{ WriteStatement insertSymbolsToNewSymbolsStatement{
"INSERT INTO newSymbols(temporarySymbolId, usr, symbolName) VALUES(?,?,?)", "INSERT INTO newSymbols(temporarySymbolId, usr, symbolName) VALUES(?,?,?)",
database}; database};
@@ -166,20 +166,20 @@ public:
"SELECT compilerArguments FROM projectParts WHERE projectPartId = (SELECT projectPartId FROM projectPartsSources WHERE sourceId = ?)", "SELECT compilerArguments FROM projectParts WHERE projectPartId = (SELECT projectPartId FROM projectPartsSources WHERE sourceId = ?)",
database database
}; };
WriteStatement insertIntoNewUsedDefinesStatement{ WriteStatement insertIntoNewUsedMacrosStatement{
"INSERT INTO newUsedDefines(sourceId, defineName) VALUES (?,?)", "INSERT INTO newUsedMacros(sourceId, macroName) VALUES (?,?)",
database database
}; };
WriteStatement syncNewUsedDefinesStatement{ WriteStatement syncNewUsedMacrosStatement{
"INSERT INTO usedDefines(sourceId, defineName) SELECT sourceId, defineName FROM newUsedDefines WHERE NOT EXISTS (SELECT sourceId FROM usedDefines WHERE usedDefines.sourceId == newUsedDefines.sourceId AND usedDefines.defineName == newUsedDefines.defineName)", "INSERT INTO usedMacros(sourceId, macroName) SELECT sourceId, macroName FROM newUsedMacros WHERE NOT EXISTS (SELECT sourceId FROM usedMacros WHERE usedMacros.sourceId == newUsedMacros.sourceId AND usedMacros.macroName == newUsedMacros.macroName)",
database database
}; };
WriteStatement deleteOutdatedUsedDefinesStatement{ WriteStatement deleteOutdatedUsedMacrosStatement{
"DELETE FROM usedDefines WHERE sourceId IN (SELECT sourceId FROM newUsedDefines) AND NOT EXISTS (SELECT sourceId FROM newUsedDefines WHERE newUsedDefines.sourceId == usedDefines.sourceId AND newUsedDefines.defineName == usedDefines.defineName)", "DELETE FROM usedMacros WHERE sourceId IN (SELECT sourceId FROM newUsedMacros) AND NOT EXISTS (SELECT sourceId FROM newUsedMacros WHERE newUsedMacros.sourceId == usedMacros.sourceId AND newUsedMacros.macroName == usedMacros.macroName)",
database database
}; };
WriteStatement deleteNewUsedDefinesTableStatement{ WriteStatement deleteNewUsedMacrosTableStatement{
"DELETE FROM newUsedDefines", "DELETE FROM newUsedMacros",
database database
}; };
}; };

View File

@@ -68,7 +68,7 @@ void SymbolIndexer::updateProjectPart(V2::ProjectPartContainer &&projectPart,
m_symbolStorage.updateProjectPartSources(projectPart.projectPartId(), m_symbolStorage.updateProjectPartSources(projectPart.projectPartId(),
m_symbolsCollector.sourceFiles()); m_symbolsCollector.sourceFiles());
m_symbolStorage.insertOrUpdateUsedDefines(m_symbolsCollector.usedDefines()); m_symbolStorage.insertOrUpdateUsedMacros(m_symbolsCollector.usedMacros());
transaction.commit(); transaction.commit();

View File

@@ -77,9 +77,9 @@ const FilePathIds &SymbolsCollector::sourceFiles() const
return m_collectMacrosSourceFileCallbacks.sourceFiles(); return m_collectMacrosSourceFileCallbacks.sourceFiles();
} }
const UsedDefines &SymbolsCollector::usedDefines() const const UsedMacros &SymbolsCollector::usedMacros() const
{ {
return m_collectMacrosSourceFileCallbacks.usedDefines(); return m_collectMacrosSourceFileCallbacks.usedMacros();
} }
} // namespace ClangBackEnd } // namespace ClangBackEnd

View File

@@ -51,7 +51,7 @@ public:
const SymbolEntries &symbols() const override; const SymbolEntries &symbols() const override;
const SourceLocationEntries &sourceLocations() const override; const SourceLocationEntries &sourceLocations() const override;
const FilePathIds &sourceFiles() const override; const FilePathIds &sourceFiles() const override;
const UsedDefines &usedDefines() const override; const UsedMacros &usedMacros() const override;
private: private:
ClangTool m_clangTool; ClangTool m_clangTool;

View File

@@ -27,7 +27,7 @@
#include "symbolentry.h" #include "symbolentry.h"
#include "sourcelocationentry.h" #include "sourcelocationentry.h"
#include "useddefines.h" #include "usedmacro.h"
#include <filecontainerv2.h> #include <filecontainerv2.h>
@@ -53,7 +53,7 @@ public:
virtual const SymbolEntries &symbols() const = 0; virtual const SymbolEntries &symbols() const = 0;
virtual const SourceLocationEntries &sourceLocations() const = 0; virtual const SourceLocationEntries &sourceLocations() const = 0;
virtual const FilePathIds &sourceFiles() const = 0; virtual const FilePathIds &sourceFiles() const = 0;
virtual const UsedDefines &usedDefines() const = 0; virtual const UsedMacros &usedMacros() const = 0;
}; };
} // namespace ClangBackEnd } // namespace ClangBackEnd

View File

@@ -81,15 +81,15 @@ public:
} }
} }
void insertOrUpdateUsedDefines(const UsedDefines &usedDefines) override void insertOrUpdateUsedMacros(const UsedMacros &usedMacros) override
{ {
WriteStatement &insertStatement = m_statementFactory.insertIntoNewUsedDefinesStatement; WriteStatement &insertStatement = m_statementFactory.insertIntoNewUsedMacrosStatement;
for (const UsedDefine &usedDefine : usedDefines) for (const UsedMacro &usedMacro : usedMacros)
insertStatement.write(usedDefine.filePathId.filePathId, usedDefine.defineName); insertStatement.write(usedMacro.filePathId.filePathId, usedMacro.macroName);
m_statementFactory.syncNewUsedDefinesStatement.execute(); m_statementFactory.syncNewUsedMacrosStatement.execute();
m_statementFactory.deleteOutdatedUsedDefinesStatement.execute(); m_statementFactory.deleteOutdatedUsedMacrosStatement.execute();
m_statementFactory.deleteNewUsedDefinesTableStatement.execute(); m_statementFactory.deleteNewUsedMacrosTableStatement.execute();
} }
void updateProjectPartSources(Utils::SmallStringView projectPartName, void updateProjectPartSources(Utils::SmallStringView projectPartName,

View File

@@ -28,7 +28,7 @@
#include "projectpartentry.h" #include "projectpartentry.h"
#include "sourcelocationentry.h" #include "sourcelocationentry.h"
#include "symbolentry.h" #include "symbolentry.h"
#include "useddefines.h" #include "usedmacro.h"
#include <sqlitetransaction.h> #include <sqlitetransaction.h>
@@ -48,7 +48,7 @@ public:
const Utils::SmallStringVector &commandLineArguments) = 0; const Utils::SmallStringVector &commandLineArguments) = 0;
virtual void updateProjectPartSources(Utils::SmallStringView projectPartName, virtual void updateProjectPartSources(Utils::SmallStringView projectPartName,
const FilePathIds &sourceFilePathIds) = 0; const FilePathIds &sourceFilePathIds) = 0;
virtual void insertOrUpdateUsedDefines(const UsedDefines &usedDefines) = 0; virtual void insertOrUpdateUsedMacros(const UsedMacros &usedMacros) = 0;
}; };
} // namespace ClangBackEnd } // namespace ClangBackEnd

View File

@@ -33,35 +33,35 @@
namespace ClangBackEnd { namespace ClangBackEnd {
class UsedDefine class UsedMacro
{ {
public: public:
constexpr UsedDefine() = default; constexpr UsedMacro() = default;
UsedDefine(Utils::SmallStringView defineName, FilePathId filePathId) UsedMacro(Utils::SmallStringView macroName, FilePathId filePathId)
: defineName(defineName), : macroName(macroName),
filePathId(filePathId) filePathId(filePathId)
{} {}
friend bool operator<(const UsedDefine &first, const UsedDefine &second) friend bool operator<(const UsedMacro &first, const UsedMacro &second)
{ {
return std::tie(first.filePathId, first.defineName) return std::tie(first.filePathId, first.macroName)
< std::tie(second.filePathId, second.defineName); < std::tie(second.filePathId, second.macroName);
} }
friend bool operator==(const UsedDefine &first, const UsedDefine &second) friend bool operator==(const UsedMacro &first, const UsedMacro &second)
{ {
return first.filePathId == second.filePathId && first.defineName == second.defineName; return first.filePathId == second.filePathId && first.macroName == second.macroName;
} }
friend bool operator!=(const UsedDefine &first, const UsedDefine &second) friend bool operator!=(const UsedMacro &first, const UsedMacro &second)
{ {
return !(first == second); return !(first == second);
} }
public: public:
Utils::SmallString defineName; Utils::SmallString macroName;
FilePathId filePathId; FilePathId filePathId;
}; };
using UsedDefines = std::vector<UsedDefine>; using UsedMacros = std::vector<UsedMacro>;
} // ClangBackEnd } // ClangBackEnd

View File

@@ -44,7 +44,7 @@
#include <filepathview.h> #include <filepathview.h>
#include <tooltipinfo.h> #include <tooltipinfo.h>
#include <projectpartentry.h> #include <projectpartentry.h>
#include <useddefines.h> #include <usedmacro.h>
#include <cpptools/usages.h> #include <cpptools/usages.h>
@@ -817,12 +817,12 @@ std::ostream &operator<<(std::ostream &out, const ProjectPartEntry &projectPartE
<< ")"; << ")";
} }
std::ostream &operator<<(std::ostream &out, const UsedDefine &usedDefine) std::ostream &operator<<(std::ostream &out, const UsedMacro &usedMacro)
{ {
return out << "(" return out << "("
<< usedDefine.filePathId << usedMacro.filePathId
<< ", " << ", "
<< usedDefine.defineName << usedMacro.macroName
<< ")"; << ")";
} }

View File

@@ -132,7 +132,7 @@ using FilePathView = AbstractFilePathView<'/'>;
using NativeFilePathView = AbstractFilePathView<'\\'>; using NativeFilePathView = AbstractFilePathView<'\\'>;
class ToolTipInfo; class ToolTipInfo;
class ProjectPartEntry; class ProjectPartEntry;
class UsedDefine; class UsedMacro;
std::ostream &operator<<(std::ostream &out, const SourceLocationEntry &entry); std::ostream &operator<<(std::ostream &out, const SourceLocationEntry &entry);
std::ostream &operator<<(std::ostream &out, const IdPaths &idPaths); std::ostream &operator<<(std::ostream &out, const IdPaths &idPaths);
@@ -195,7 +195,7 @@ std::ostream &operator<<(std::ostream &out, const TokenInfos &tokenInfos);
std::ostream &operator<<(std::ostream &out, const FilePathView &filePathView); std::ostream &operator<<(std::ostream &out, const FilePathView &filePathView);
std::ostream &operator<<(std::ostream &out, const NativeFilePathView &nativeFilePathView); std::ostream &operator<<(std::ostream &out, const NativeFilePathView &nativeFilePathView);
std::ostream &operator<<(std::ostream &out, const ProjectPartEntry &projectPartEntry); std::ostream &operator<<(std::ostream &out, const ProjectPartEntry &projectPartEntry);
std::ostream &operator<<(std::ostream &out, const UsedDefine &usedDefine); std::ostream &operator<<(std::ostream &out, const UsedMacro &usedMacro);
void PrintTo(const FilePath &filePath, ::std::ostream *os); void PrintTo(const FilePath &filePath, ::std::ostream *os);
void PrintTo(const FilePathView &filePathView, ::std::ostream *os); void PrintTo(const FilePathView &filePathView, ::std::ostream *os);

View File

@@ -54,6 +54,6 @@ public:
MOCK_CONST_METHOD0(sourceFiles, MOCK_CONST_METHOD0(sourceFiles,
const ClangBackEnd::FilePathIds &()); const ClangBackEnd::FilePathIds &());
MOCK_CONST_METHOD0(usedDefines, MOCK_CONST_METHOD0(usedMacros,
const ClangBackEnd::UsedDefines &()); const ClangBackEnd::UsedMacros &());
}; };

View File

@@ -43,6 +43,6 @@ public:
MOCK_METHOD2(updateProjectPartSources, MOCK_METHOD2(updateProjectPartSources,
void(Utils::SmallStringView projectPartName, void(Utils::SmallStringView projectPartName,
const ClangBackEnd::FilePathIds &sourceFilePathIds)); const ClangBackEnd::FilePathIds &sourceFilePathIds));
MOCK_METHOD1(insertOrUpdateUsedDefines, MOCK_METHOD1(insertOrUpdateUsedMacros,
void (const ClangBackEnd::UsedDefines &usedDefines)); void (const ClangBackEnd::UsedMacros &usedMacros));
}; };

View File

@@ -84,7 +84,7 @@ protected:
expectedContainer = {projectPartId.clone(), expectedContainer = {projectPartId.clone(),
arguments.clone(), arguments.clone(),
defineNames.clone(), macroNames.clone(),
{filePathId(headerPaths[1])}, {filePathId(headerPaths[1])},
{filePathIds(sourcePaths)}}; {filePathIds(sourcePaths)}};
} }
@@ -101,7 +101,7 @@ protected:
Utils::SmallString projectPartId2{"project2"}; Utils::SmallString projectPartId2{"project2"};
Utils::PathStringVector headerPaths = {"/path/to/header1.h", "/path/to/header2.h"}; Utils::PathStringVector headerPaths = {"/path/to/header1.h", "/path/to/header2.h"};
Utils::PathStringVector sourcePaths = {"/path/to/source1.cpp", "/path/to/source2.cpp"}; Utils::PathStringVector sourcePaths = {"/path/to/source1.cpp", "/path/to/source2.cpp"};
Utils::SmallStringVector defineNames = {"DEFINE"}; Utils::SmallStringVector macroNames = {"DEFINE"};
CppTools::ProjectFile header1ProjectFile{QString(headerPaths[0]), CppTools::ProjectFile::CXXHeader}; CppTools::ProjectFile header1ProjectFile{QString(headerPaths[0]), CppTools::ProjectFile::CXXHeader};
CppTools::ProjectFile header2ProjectFile{QString(headerPaths[1]), CppTools::ProjectFile::CXXHeader}; CppTools::ProjectFile header2ProjectFile{QString(headerPaths[1]), CppTools::ProjectFile::CXXHeader};
CppTools::ProjectFile source1ProjectFile{QString(sourcePaths[0]), CppTools::ProjectFile::CXXSource}; CppTools::ProjectFile source1ProjectFile{QString(sourcePaths[0]), CppTools::ProjectFile::CXXSource};

View File

@@ -103,15 +103,15 @@ TEST_F(RefactoringDatabaseInitializer, AddProjectPartsSourcesTable)
initializer.createProjectPartsSourcesTable(); initializer.createProjectPartsSourcesTable();
} }
TEST_F(RefactoringDatabaseInitializer, AddUsedDefinesTable) TEST_F(RefactoringDatabaseInitializer, AddUsedMacrosTable)
{ {
InSequence s; InSequence s;
EXPECT_CALL(mockDatabase, execute(Eq("CREATE TABLE IF NOT EXISTS usedDefines(usedDefineId INTEGER PRIMARY KEY, sourceId INTEGER, defineName TEXT)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE TABLE IF NOT EXISTS usedMacros(usedMacroId INTEGER PRIMARY KEY, sourceId INTEGER, macroName TEXT)")));
EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_usedDefines_sourceId_defineName ON usedDefines(sourceId, defineName)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_usedMacros_sourceId_macroName ON usedMacros(sourceId, macroName)")));
EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_usedDefines_defineName ON usedDefines(defineName)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_usedMacros_macroName ON usedMacros(macroName)")));
initializer.createUsedDefinesTable(); initializer.createUsedMacrosTable();
} }
TEST_F(RefactoringDatabaseInitializer, CreateInTheContructor) TEST_F(RefactoringDatabaseInitializer, CreateInTheContructor)
@@ -132,9 +132,9 @@ TEST_F(RefactoringDatabaseInitializer, CreateInTheContructor)
EXPECT_CALL(mockDatabase, execute(Eq("CREATE TABLE IF NOT EXISTS projectPartsSources(projectPartId INTEGER, sourceId INTEGER)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE TABLE IF NOT EXISTS projectPartsSources(projectPartId INTEGER, sourceId INTEGER)")));
EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_projectPartsSources_sourceId_projectPartId ON projectPartsSources(sourceId, projectPartId)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_projectPartsSources_sourceId_projectPartId ON projectPartsSources(sourceId, projectPartId)")));
EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_projectPartsSources_projectPartId ON projectPartsSources(projectPartId)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_projectPartsSources_projectPartId ON projectPartsSources(projectPartId)")));
EXPECT_CALL(mockDatabase, execute(Eq("CREATE TABLE IF NOT EXISTS usedDefines(usedDefineId INTEGER PRIMARY KEY, sourceId INTEGER, defineName TEXT)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE TABLE IF NOT EXISTS usedMacros(usedMacroId INTEGER PRIMARY KEY, sourceId INTEGER, macroName TEXT)")));
EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_usedDefines_sourceId_defineName ON usedDefines(sourceId, defineName)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_usedMacros_sourceId_macroName ON usedMacros(sourceId, macroName)")));
EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_usedDefines_defineName ON usedDefines(defineName)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_usedMacros_macroName ON usedMacros(macroName)")));
EXPECT_CALL(mockDatabase, commit()); EXPECT_CALL(mockDatabase, commit());
Initializer initializer{mockDatabase}; Initializer initializer{mockDatabase};

View File

@@ -67,14 +67,14 @@ TEST_F(StorageSqliteStatementFactory, AddNewLocationsTable)
factory.createNewLocationsTable(); factory.createNewLocationsTable();
} }
TEST_F(StorageSqliteStatementFactory, AddNewUsedDefineTable) TEST_F(StorageSqliteStatementFactory, AddNewUsedMacroTable)
{ {
InSequence s; InSequence s;
EXPECT_CALL(mockDatabase, execute(Eq("CREATE TEMPORARY TABLE newUsedDefines(sourceId INTEGER, defineName TEXT)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE TEMPORARY TABLE newUsedMacros(sourceId INTEGER, macroName TEXT)")));
EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_newUsedDefines_sourceId_defineName ON newUsedDefines(sourceId, defineName)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_newUsedMacros_sourceId_macroName ON newUsedMacros(sourceId, macroName)")));
factory.createNewUsedDefinesTable(); factory.createNewUsedMacrosTable();
} }
TEST_F(StorageSqliteStatementFactory, AddTablesInConstructor) TEST_F(StorageSqliteStatementFactory, AddTablesInConstructor)
@@ -87,8 +87,8 @@ TEST_F(StorageSqliteStatementFactory, AddTablesInConstructor)
EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_newSymbols_symbolId ON newSymbols(symbolId)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_newSymbols_symbolId ON newSymbols(symbolId)")));
EXPECT_CALL(mockDatabase, execute(Eq("CREATE TEMPORARY TABLE newLocations(temporarySymbolId INTEGER, symbolId INTEGER, line INTEGER, column INTEGER, sourceId INTEGER)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE TEMPORARY TABLE newLocations(temporarySymbolId INTEGER, symbolId INTEGER, line INTEGER, column INTEGER, sourceId INTEGER)")));
EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_newLocations_sourceId ON newLocations(sourceId)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_newLocations_sourceId ON newLocations(sourceId)")));
EXPECT_CALL(mockDatabase, execute(Eq("CREATE TEMPORARY TABLE newUsedDefines(sourceId INTEGER, defineName TEXT)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE TEMPORARY TABLE newUsedMacros(sourceId INTEGER, macroName TEXT)")));
EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_newUsedDefines_sourceId_defineName ON newUsedDefines(sourceId, defineName)"))); EXPECT_CALL(mockDatabase, execute(Eq("CREATE INDEX IF NOT EXISTS index_newUsedMacros_sourceId_macroName ON newUsedMacros(sourceId, macroName)")));
EXPECT_CALL(mockDatabase, commit()); EXPECT_CALL(mockDatabase, commit());
StatementFactory factory{mockDatabase}; StatementFactory factory{mockDatabase};
@@ -190,27 +190,27 @@ TEST_F(StorageSqliteStatementFactory, GetCompileArgumentsForFileId)
Eq("SELECT compilerArguments FROM projectParts WHERE projectPartId = (SELECT projectPartId FROM projectPartsSources WHERE sourceId = ?)")); Eq("SELECT compilerArguments FROM projectParts WHERE projectPartId = (SELECT projectPartId FROM projectPartsSources WHERE sourceId = ?)"));
} }
TEST_F(StorageSqliteStatementFactory, InsertIntoNewUsedDefines) TEST_F(StorageSqliteStatementFactory, InsertIntoNewUsedMacros)
{ {
ASSERT_THAT(factory.insertIntoNewUsedDefinesStatement.sqlStatement, ASSERT_THAT(factory.insertIntoNewUsedMacrosStatement.sqlStatement,
Eq("INSERT INTO newUsedDefines(sourceId, defineName) VALUES (?,?)")); Eq("INSERT INTO newUsedMacros(sourceId, macroName) VALUES (?,?)"));
} }
TEST_F(StorageSqliteStatementFactory, SyncNewUsedDefines) TEST_F(StorageSqliteStatementFactory, SyncNewUsedMacros)
{ {
ASSERT_THAT(factory.syncNewUsedDefinesStatement.sqlStatement, ASSERT_THAT(factory.syncNewUsedMacrosStatement.sqlStatement,
Eq("INSERT INTO usedDefines(sourceId, defineName) SELECT sourceId, defineName FROM newUsedDefines WHERE NOT EXISTS (SELECT sourceId FROM usedDefines WHERE usedDefines.sourceId == newUsedDefines.sourceId AND usedDefines.defineName == newUsedDefines.defineName)")); Eq("INSERT INTO usedMacros(sourceId, macroName) SELECT sourceId, macroName FROM newUsedMacros WHERE NOT EXISTS (SELECT sourceId FROM usedMacros WHERE usedMacros.sourceId == newUsedMacros.sourceId AND usedMacros.macroName == newUsedMacros.macroName)"));
} }
TEST_F(StorageSqliteStatementFactory, DeleteUnusedDefines) TEST_F(StorageSqliteStatementFactory, DeleteUnusedMacros)
{ {
ASSERT_THAT(factory.deleteOutdatedUsedDefinesStatement.sqlStatement, ASSERT_THAT(factory.deleteOutdatedUsedMacrosStatement.sqlStatement,
Eq("DELETE FROM usedDefines WHERE sourceId IN (SELECT sourceId FROM newUsedDefines) AND NOT EXISTS (SELECT sourceId FROM newUsedDefines WHERE newUsedDefines.sourceId == usedDefines.sourceId AND newUsedDefines.defineName == usedDefines.defineName)")); Eq("DELETE FROM usedMacros WHERE sourceId IN (SELECT sourceId FROM newUsedMacros) AND NOT EXISTS (SELECT sourceId FROM newUsedMacros WHERE newUsedMacros.sourceId == usedMacros.sourceId AND newUsedMacros.macroName == usedMacros.macroName)"));
} }
TEST_F(StorageSqliteStatementFactory, DeleteAllInNewUnusedDefines) TEST_F(StorageSqliteStatementFactory, DeleteAllInNewUnusedMacros)
{ {
ASSERT_THAT(factory.deleteNewUsedDefinesTableStatement.sqlStatement, ASSERT_THAT(factory.deleteNewUsedMacrosTableStatement.sqlStatement,
Eq("DELETE FROM newUsedDefines")); Eq("DELETE FROM newUsedMacros"));
} }
} }

View File

@@ -47,7 +47,7 @@ using ClangBackEnd::SymbolEntry;
using ClangBackEnd::SourceLocationEntries; using ClangBackEnd::SourceLocationEntries;
using ClangBackEnd::SourceLocationEntry; using ClangBackEnd::SourceLocationEntry;
using ClangBackEnd::SymbolType; using ClangBackEnd::SymbolType;
using ClangBackEnd::UsedDefines; using ClangBackEnd::UsedMacros;
MATCHER_P2(IsFileId, directoryId, fileNameId, MATCHER_P2(IsFileId, directoryId, fileNameId,
std::string(negation ? "isn't " : "is ") std::string(negation ? "isn't " : "is ")
@@ -64,7 +64,7 @@ protected:
ON_CALL(mockCollector, symbols()).WillByDefault(ReturnRef(symbolEntries)); ON_CALL(mockCollector, symbols()).WillByDefault(ReturnRef(symbolEntries));
ON_CALL(mockCollector, sourceLocations()).WillByDefault(ReturnRef(sourceLocations)); ON_CALL(mockCollector, sourceLocations()).WillByDefault(ReturnRef(sourceLocations));
ON_CALL(mockCollector, sourceFiles()).WillByDefault(ReturnRef(sourceFileIds)); ON_CALL(mockCollector, sourceFiles()).WillByDefault(ReturnRef(sourceFileIds));
ON_CALL(mockCollector, usedDefines()).WillByDefault(ReturnRef(usedDefines)); ON_CALL(mockCollector, usedMacros()).WillByDefault(ReturnRef(usedMacros));
} }
protected: protected:
@@ -90,7 +90,7 @@ protected:
SymbolEntries symbolEntries{{1, {"function", "function"}}}; SymbolEntries symbolEntries{{1, {"function", "function"}}};
SourceLocationEntries sourceLocations{{1, {1, 1}, {42, 23}, SymbolType::Declaration}}; SourceLocationEntries sourceLocations{{1, {1, 1}, {42, 23}, SymbolType::Declaration}};
FilePathIds sourceFileIds{{1, 1}, {42, 23}}; FilePathIds sourceFileIds{{1, 1}, {42, 23}};
UsedDefines usedDefines{{"Foo", {1, 1}}}; UsedMacros usedMacros{{"Foo", {1, 1}}};
NiceMock<MockSqliteTransactionBackend> mockSqliteTransactionBackend; NiceMock<MockSqliteTransactionBackend> mockSqliteTransactionBackend;
NiceMock<MockSymbolsCollector> mockCollector; NiceMock<MockSymbolsCollector> mockCollector;
NiceMock<MockSymbolStorage> mockStorage; NiceMock<MockSymbolStorage> mockStorage;
@@ -181,9 +181,9 @@ TEST_F(SymbolIndexer, UpdateProjectPartsCallsUpdateProjectPartSources)
indexer.updateProjectParts({projectPart1, projectPart2}, Utils::clone(unsaved)); indexer.updateProjectParts({projectPart1, projectPart2}, Utils::clone(unsaved));
} }
TEST_F(SymbolIndexer, UpdateProjectPartsCallsInsertOrUpdateUsedDefines) TEST_F(SymbolIndexer, UpdateProjectPartsCallsInsertOrUpdateUsedMacros)
{ {
EXPECT_CALL(mockStorage, insertOrUpdateUsedDefines(Eq(usedDefines))) EXPECT_CALL(mockStorage, insertOrUpdateUsedMacros(Eq(usedMacros)))
.Times(2); .Times(2);
indexer.updateProjectParts({projectPart1, projectPart2}, Utils::clone(unsaved)); indexer.updateProjectParts({projectPart1, projectPart2}, Utils::clone(unsaved));
@@ -201,7 +201,7 @@ TEST_F(SymbolIndexer, UpdateProjectPartsCallsInOrder)
EXPECT_CALL(mockStorage, addSymbolsAndSourceLocations(symbolEntries, sourceLocations)); EXPECT_CALL(mockStorage, addSymbolsAndSourceLocations(symbolEntries, sourceLocations));
EXPECT_CALL(mockStorage, insertOrUpdateProjectPart(_, _)); EXPECT_CALL(mockStorage, insertOrUpdateProjectPart(_, _));
EXPECT_CALL(mockStorage, updateProjectPartSources(_, _)); EXPECT_CALL(mockStorage, updateProjectPartSources(_, _));
EXPECT_CALL(mockStorage, insertOrUpdateUsedDefines(Eq(usedDefines))); EXPECT_CALL(mockStorage, insertOrUpdateUsedMacros(Eq(usedMacros)));
EXPECT_CALL(mockSqliteTransactionBackend, commit()); EXPECT_CALL(mockSqliteTransactionBackend, commit());
indexer.updateProjectParts({projectPart1}, Utils::clone(unsaved)); indexer.updateProjectParts({projectPart1}, Utils::clone(unsaved));

View File

@@ -52,7 +52,7 @@ using ClangBackEnd::SourceLocationEntry;
using ClangBackEnd::SymbolEntry; using ClangBackEnd::SymbolEntry;
using ClangBackEnd::SymbolType; using ClangBackEnd::SymbolType;
using ClangBackEnd::SymbolIndex; using ClangBackEnd::SymbolIndex;
using ClangBackEnd::UsedDefine; using ClangBackEnd::UsedMacro;
using Sqlite::Database; using Sqlite::Database;
@@ -306,36 +306,36 @@ TEST_F(SymbolsCollector, DontCollectSourceFilesAfterFilesAreCleared)
ASSERT_THAT(collector.sourceFiles(), IsEmpty()); ASSERT_THAT(collector.sourceFiles(), IsEmpty());
} }
TEST_F(SymbolsCollector, CollectUsedDefinesWithExternalDefine) TEST_F(SymbolsCollector, CollectUsedMacrosWithExternalDefine)
{ {
auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h");
collector.addFiles({fileId}, {"cc", "-DCOMPILER_ARGUMENT"}); collector.addFiles({fileId}, {"cc", "-DCOMPILER_ARGUMENT"});
collector.collectSymbols(); collector.collectSymbols();
ASSERT_THAT(collector.usedDefines(), ASSERT_THAT(collector.usedMacros(),
ElementsAre(Eq(UsedDefine{"DEFINED", fileId}), ElementsAre(Eq(UsedMacro{"DEFINED", fileId}),
Eq(UsedDefine{"IF_DEFINE", fileId}), Eq(UsedMacro{"IF_DEFINE", fileId}),
Eq(UsedDefine{"__clang__", fileId}), Eq(UsedMacro{"__clang__", fileId}),
Eq(UsedDefine{"IF_NOT_DEFINE", fileId}), Eq(UsedMacro{"IF_NOT_DEFINE", fileId}),
Eq(UsedDefine{"MACRO_EXPANSION", fileId}), Eq(UsedMacro{"MACRO_EXPANSION", fileId}),
Eq(UsedDefine{"COMPILER_ARGUMENT", fileId}))); Eq(UsedMacro{"COMPILER_ARGUMENT", fileId})));
} }
TEST_F(SymbolsCollector, CollectUsedDefinesWithoutExternalDefine) TEST_F(SymbolsCollector, CollectUsedMacrosWithoutExternalDefine)
{ {
auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h"); auto fileId = filePathId(TESTDATA_DIR "/symbolscollector_defines.h");
collector.addFiles({fileId}, {"cc"}); collector.addFiles({fileId}, {"cc"});
collector.collectSymbols(); collector.collectSymbols();
ASSERT_THAT(collector.usedDefines(), ASSERT_THAT(collector.usedMacros(),
ElementsAre(Eq(UsedDefine{"DEFINED", fileId}), ElementsAre(Eq(UsedMacro{"DEFINED", fileId}),
Eq(UsedDefine{"IF_DEFINE", fileId}), Eq(UsedMacro{"IF_DEFINE", fileId}),
Eq(UsedDefine{"__clang__", fileId}), Eq(UsedMacro{"__clang__", fileId}),
Eq(UsedDefine{"IF_NOT_DEFINE", fileId}), Eq(UsedMacro{"IF_NOT_DEFINE", fileId}),
Eq(UsedDefine{"MACRO_EXPANSION", fileId}), Eq(UsedMacro{"MACRO_EXPANSION", fileId}),
Eq(UsedDefine{"COMPILER_ARGUMENT", fileId}))); Eq(UsedMacro{"COMPILER_ARGUMENT", fileId})));
} }
TEST_F(SymbolsCollector, DontCollectHeaderGuards) TEST_F(SymbolsCollector, DontCollectHeaderGuards)
@@ -345,8 +345,8 @@ TEST_F(SymbolsCollector, DontCollectHeaderGuards)
collector.collectSymbols(); collector.collectSymbols();
ASSERT_THAT(collector.usedDefines(), ASSERT_THAT(collector.usedMacros(),
Not(Contains(Eq(UsedDefine{"SYMBOLSCOLLECTOR_DEFINES_H", fileId})))); Not(Contains(Eq(UsedMacro{"SYMBOLSCOLLECTOR_DEFINES_H", fileId}))));
} }
TEST_F(SymbolsCollector, DontCollectDynamicLibraryExports) TEST_F(SymbolsCollector, DontCollectDynamicLibraryExports)
@@ -356,8 +356,8 @@ TEST_F(SymbolsCollector, DontCollectDynamicLibraryExports)
collector.collectSymbols(); collector.collectSymbols();
ASSERT_THAT(collector.usedDefines(), ASSERT_THAT(collector.usedMacros(),
Not(Contains(Eq(UsedDefine{"CLASS_EXPORT", fileId})))); Not(Contains(Eq(UsedMacro{"CLASS_EXPORT", fileId}))));
} }
TEST_F(SymbolsCollector, CollectMacroDefinitionSourceLocation) TEST_F(SymbolsCollector, CollectMacroDefinitionSourceLocation)

View File

@@ -74,10 +74,10 @@ protected:
MockSqliteReadStatement &getProjectPartIdStatement = statementFactory.getProjectPartIdStatement; MockSqliteReadStatement &getProjectPartIdStatement = statementFactory.getProjectPartIdStatement;
MockSqliteWriteStatement &deleteAllProjectPartsSourcesWithProjectPartIdStatement = statementFactory.deleteAllProjectPartsSourcesWithProjectPartIdStatement; MockSqliteWriteStatement &deleteAllProjectPartsSourcesWithProjectPartIdStatement = statementFactory.deleteAllProjectPartsSourcesWithProjectPartIdStatement;
MockSqliteWriteStatement &insertProjectPartSourcesStatement = statementFactory.insertProjectPartSourcesStatement; MockSqliteWriteStatement &insertProjectPartSourcesStatement = statementFactory.insertProjectPartSourcesStatement;
MockSqliteWriteStatement &insertIntoNewUsedDefinesStatement = statementFactory.insertIntoNewUsedDefinesStatement; MockSqliteWriteStatement &insertIntoNewUsedMacrosStatement = statementFactory.insertIntoNewUsedMacrosStatement;
MockSqliteWriteStatement &syncNewUsedDefinesStatement = statementFactory.syncNewUsedDefinesStatement; MockSqliteWriteStatement &syncNewUsedMacrosStatement = statementFactory.syncNewUsedMacrosStatement;
MockSqliteWriteStatement &deleteOutdatedUsedDefinesStatement = statementFactory.deleteOutdatedUsedDefinesStatement; MockSqliteWriteStatement &deleteOutdatedUsedMacrosStatement = statementFactory.deleteOutdatedUsedMacrosStatement;
MockSqliteWriteStatement &deleteNewUsedDefinesTableStatement = statementFactory.deleteNewUsedDefinesTableStatement; MockSqliteWriteStatement &deleteNewUsedMacrosTableStatement = statementFactory.deleteNewUsedMacrosTableStatement;
SymbolEntries symbolEntries{{1, {"functionUSR", "function"}}, SymbolEntries symbolEntries{{1, {"functionUSR", "function"}},
{2, {"function2USR", "function2"}}}; {2, {"function2USR", "function2"}}};
SourceLocationEntries sourceLocations{{1, {1, 3}, {42, 23}, SymbolType::Declaration}, SourceLocationEntries sourceLocations{{1, {1, 3}, {42, 23}, SymbolType::Declaration},
@@ -208,17 +208,17 @@ TEST_F(SymbolStorage, UpdateProjectPartSources)
storage.updateProjectPartSources("project", {{1, 1}, {1, 2}}); storage.updateProjectPartSources("project", {{1, 1}, {1, 2}});
} }
TEST_F(SymbolStorage, InsertOrUpdateUsedDefines) TEST_F(SymbolStorage, InsertOrUpdateUsedMacros)
{ {
InSequence sequence; InSequence sequence;
EXPECT_CALL(insertIntoNewUsedDefinesStatement, write(TypedEq<uint>(42), TypedEq<Utils::SmallStringView>("FOO"))); EXPECT_CALL(insertIntoNewUsedMacrosStatement, write(TypedEq<uint>(42), TypedEq<Utils::SmallStringView>("FOO")));
EXPECT_CALL(insertIntoNewUsedDefinesStatement, write(TypedEq<uint>(43), TypedEq<Utils::SmallStringView>("BAR"))); EXPECT_CALL(insertIntoNewUsedMacrosStatement, write(TypedEq<uint>(43), TypedEq<Utils::SmallStringView>("BAR")));
EXPECT_CALL(syncNewUsedDefinesStatement, execute()); EXPECT_CALL(syncNewUsedMacrosStatement, execute());
EXPECT_CALL(deleteOutdatedUsedDefinesStatement, execute()); EXPECT_CALL(deleteOutdatedUsedMacrosStatement, execute());
EXPECT_CALL(deleteNewUsedDefinesTableStatement, execute()); EXPECT_CALL(deleteNewUsedMacrosTableStatement, execute());
storage.insertOrUpdateUsedDefines({{"FOO", {1, 42}}, {"BAR", {1, 43}}}); storage.insertOrUpdateUsedMacros({{"FOO", {1, 42}}, {"BAR", {1, 43}}});
} }
} }