forked from qt-creator/qt-creator
CppTools: Use only const pointers for ProjectInfo and ProjectPart
All members were already const, but this makes it clear at all points of use that these data structures are immutable. Change-Id: Iea615c090bde462c445d15223caccc561b0c713d Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -94,7 +94,7 @@ static bool isDBGenerationEnabled(ProjectExplorer::Project *project)
|
||||
using namespace CppTools;
|
||||
if (!project)
|
||||
return false;
|
||||
const ProjectInfo::Ptr projectInfo = CppModelManager::instance()->projectInfo(project);
|
||||
const ProjectInfo::ConstPtr projectInfo = CppModelManager::instance()->projectInfo(project);
|
||||
return projectInfo && !projectInfo->projectParts().isEmpty();
|
||||
}
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ TextEditor::AssistInterface *ClangCompletionAssistProvider::createAssistInterfac
|
||||
int position,
|
||||
TextEditor::AssistReason reason) const
|
||||
{
|
||||
const CppTools::ProjectPart::Ptr projectPart = projectPartForFileBasedOnProcessor(
|
||||
const CppTools::ProjectPart::ConstPtr projectPart = projectPartForFileBasedOnProcessor(
|
||||
filePath.toString());
|
||||
if (projectPart) {
|
||||
return new ClangCompletionAssistInterface(m_communicator,
|
||||
|
||||
@@ -171,7 +171,7 @@ bool ClangEditorDocumentProcessor::hasProjectPart() const
|
||||
return !m_projectPart.isNull();
|
||||
}
|
||||
|
||||
CppTools::ProjectPart::Ptr ClangEditorDocumentProcessor::projectPart() const
|
||||
CppTools::ProjectPart::ConstPtr ClangEditorDocumentProcessor::projectPart() const
|
||||
{
|
||||
return m_projectPart;
|
||||
}
|
||||
@@ -421,7 +421,7 @@ ClangEditorDocumentProcessor *ClangEditorDocumentProcessor::get(const QString &f
|
||||
return qobject_cast<ClangEditorDocumentProcessor*>(processor);
|
||||
}
|
||||
|
||||
static bool isProjectPartLoadedOrIsFallback(CppTools::ProjectPart::Ptr projectPart)
|
||||
static bool isProjectPartLoadedOrIsFallback(CppTools::ProjectPart::ConstPtr projectPart)
|
||||
{
|
||||
return projectPart
|
||||
&& (projectPart->id().isEmpty() || isProjectPartLoaded(projectPart));
|
||||
@@ -429,7 +429,7 @@ static bool isProjectPartLoadedOrIsFallback(CppTools::ProjectPart::Ptr projectPa
|
||||
|
||||
void ClangEditorDocumentProcessor::updateBackendProjectPartAndDocument()
|
||||
{
|
||||
const CppTools::ProjectPart::Ptr projectPart = m_parser->projectPartInfo().projectPart;
|
||||
const CppTools::ProjectPart::ConstPtr projectPart = m_parser->projectPartInfo().projectPart;
|
||||
|
||||
if (isProjectPartLoadedOrIsFallback(projectPart)) {
|
||||
updateBackendDocument(*projectPart.data());
|
||||
@@ -448,7 +448,7 @@ void ClangEditorDocumentProcessor::onParserFinished()
|
||||
updateBackendProjectPartAndDocument();
|
||||
}
|
||||
|
||||
void ClangEditorDocumentProcessor::updateBackendDocument(CppTools::ProjectPart &projectPart)
|
||||
void ClangEditorDocumentProcessor::updateBackendDocument(const CppTools::ProjectPart &projectPart)
|
||||
{
|
||||
// On registration we send the document content immediately as an unsaved
|
||||
// file, because
|
||||
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
bool isParserRunning() const override;
|
||||
|
||||
bool hasProjectPart() const;
|
||||
CppTools::ProjectPart::Ptr projectPart() const;
|
||||
CppTools::ProjectPart::ConstPtr projectPart() const;
|
||||
void clearProjectPart();
|
||||
|
||||
::Utils::Id diagnosticConfigId() const;
|
||||
@@ -120,7 +120,7 @@ private:
|
||||
void onParserFinished();
|
||||
|
||||
void updateBackendProjectPartAndDocument();
|
||||
void updateBackendDocument(CppTools::ProjectPart &projectPart);
|
||||
void updateBackendDocument(const CppTools::ProjectPart &projectPart);
|
||||
void updateBackendDocumentIfProjectPartExists();
|
||||
void requestAnnotationsFromBackend();
|
||||
|
||||
@@ -137,7 +137,7 @@ private:
|
||||
ClangDiagnosticManager m_diagnosticManager;
|
||||
BackendCommunicator &m_communicator;
|
||||
QSharedPointer<ClangEditorDocumentParser> m_parser;
|
||||
CppTools::ProjectPart::Ptr m_projectPart;
|
||||
CppTools::ProjectPart::ConstPtr m_projectPart;
|
||||
::Utils::Id m_diagnosticConfigId;
|
||||
bool m_isProjectFile = false;
|
||||
QFutureWatcher<void> m_parserWatcher;
|
||||
|
||||
@@ -274,8 +274,8 @@ void ClangModelManagerSupport::connectToWidgetsMarkContextMenuRequested(QWidget
|
||||
}
|
||||
}
|
||||
|
||||
void ClangModelManagerSupport::updateLanguageClient(ProjectExplorer::Project *project,
|
||||
const CppTools::ProjectInfo::Ptr &projectInfo)
|
||||
void ClangModelManagerSupport::updateLanguageClient(
|
||||
ProjectExplorer::Project *project, const CppTools::ProjectInfo::ConstPtr &projectInfo)
|
||||
{
|
||||
if (!CppTools::ClangdProjectSettings(project).settings().useClangd)
|
||||
return;
|
||||
@@ -300,7 +300,8 @@ void ClangModelManagerSupport::updateLanguageClient(ProjectExplorer::Project *pr
|
||||
return;
|
||||
if (!CppTools::ClangdProjectSettings(project).settings().useClangd)
|
||||
return;
|
||||
const CppTools::ProjectInfo::Ptr newProjectInfo = cppModelManager()->projectInfo(project);
|
||||
const CppTools::ProjectInfo::ConstPtr newProjectInfo
|
||||
= cppModelManager()->projectInfo(project);
|
||||
if (!newProjectInfo || *newProjectInfo != *projectInfo)
|
||||
return;
|
||||
if (getJsonDbDir() != jsonDbDir)
|
||||
@@ -321,7 +322,7 @@ void ClangModelManagerSupport::updateLanguageClient(ProjectExplorer::Project *pr
|
||||
return;
|
||||
if (!CppTools::ClangdProjectSettings(project).settings().useClangd)
|
||||
return;
|
||||
const CppTools::ProjectInfo::Ptr newProjectInfo
|
||||
const CppTools::ProjectInfo::ConstPtr newProjectInfo
|
||||
= cppModelManager()->projectInfo(project);
|
||||
if (!newProjectInfo || *newProjectInfo != *projectInfo)
|
||||
return;
|
||||
@@ -615,13 +616,13 @@ void ClangModelManagerSupport::onAboutToRemoveProject(ProjectExplorer::Project *
|
||||
void ClangModelManagerSupport::onProjectPartsUpdated(ProjectExplorer::Project *project)
|
||||
{
|
||||
QTC_ASSERT(project, return);
|
||||
const CppTools::ProjectInfo::Ptr projectInfo = cppModelManager()->projectInfo(project);
|
||||
const CppTools::ProjectInfo::ConstPtr projectInfo = cppModelManager()->projectInfo(project);
|
||||
QTC_ASSERT(projectInfo, return);
|
||||
|
||||
updateLanguageClient(project, projectInfo);
|
||||
|
||||
QStringList projectPartIds;
|
||||
for (const CppTools::ProjectPart::Ptr &projectPart : projectInfo->projectParts())
|
||||
for (const CppTools::ProjectPart::ConstPtr &projectPart : projectInfo->projectParts())
|
||||
projectPartIds.append(projectPart->id());
|
||||
onProjectPartsRemoved(projectPartIds);
|
||||
}
|
||||
|
||||
@@ -130,7 +130,7 @@ private:
|
||||
void connectToWidgetsMarkContextMenuRequested(QWidget *editorWidget);
|
||||
|
||||
void updateLanguageClient(ProjectExplorer::Project *project,
|
||||
const CppTools::ProjectInfo::Ptr &projectInfo);
|
||||
const CppTools::ProjectInfo::ConstPtr &projectInfo);
|
||||
ClangdClient *createClient(ProjectExplorer::Project *project, const Utils::FilePath &jsonDbDir);
|
||||
void claimNonProjectSources(ClangdClient *fallbackClient);
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ namespace ClangCodeModel {
|
||||
namespace Internal {
|
||||
|
||||
void RefactoringEngine::startLocalRenaming(const CppTools::CursorInEditor &data,
|
||||
CppTools::ProjectPart *,
|
||||
const CppTools::ProjectPart *,
|
||||
RenameCallback &&renameSymbolsCallback)
|
||||
{
|
||||
ClangdClient * const client
|
||||
|
||||
@@ -42,7 +42,7 @@ class RefactoringEngine : public CppTools::RefactoringEngineInterface
|
||||
{
|
||||
public:
|
||||
void startLocalRenaming(const CppTools::CursorInEditor &data,
|
||||
CppTools::ProjectPart *projectPart,
|
||||
const CppTools::ProjectPart *projectPart,
|
||||
RenameCallback &&renameSymbolsCallback) override;
|
||||
void globalRename(const CppTools::CursorInEditor &cursor, CppTools::UsagesCallback &&callback,
|
||||
const QString &replacement) override;
|
||||
|
||||
@@ -87,7 +87,7 @@ ProjectExplorer::Project *projectForCurrentEditor()
|
||||
return nullptr;
|
||||
|
||||
if (auto processor = ClangEditorDocumentProcessor::get(filePath)) {
|
||||
if (ProjectPart::Ptr projectPart = processor->projectPart())
|
||||
if (ProjectPart::ConstPtr projectPart = processor->projectPart())
|
||||
return projectForProjectPart(*projectPart);
|
||||
}
|
||||
|
||||
|
||||
@@ -109,21 +109,21 @@ private:
|
||||
}
|
||||
};
|
||||
|
||||
ProjectPart::Ptr projectPartForFile(const QString &filePath)
|
||||
ProjectPart::ConstPtr projectPartForFile(const QString &filePath)
|
||||
{
|
||||
if (const auto parser = CppTools::BaseEditorDocumentParser::get(filePath))
|
||||
return parser->projectPartInfo().projectPart;
|
||||
return ProjectPart::Ptr();
|
||||
return ProjectPart::ConstPtr();
|
||||
}
|
||||
|
||||
ProjectPart::Ptr projectPartForFileBasedOnProcessor(const QString &filePath)
|
||||
ProjectPart::ConstPtr projectPartForFileBasedOnProcessor(const QString &filePath)
|
||||
{
|
||||
if (const auto processor = ClangEditorDocumentProcessor::get(filePath))
|
||||
return processor->projectPart();
|
||||
return ProjectPart::Ptr();
|
||||
return ProjectPart::ConstPtr();
|
||||
}
|
||||
|
||||
bool isProjectPartLoaded(const ProjectPart::Ptr projectPart)
|
||||
bool isProjectPartLoaded(const ProjectPart::ConstPtr projectPart)
|
||||
{
|
||||
if (projectPart)
|
||||
return !CppModelManager::instance()->projectPartForId(projectPart->id()).isNull();
|
||||
@@ -132,7 +132,7 @@ bool isProjectPartLoaded(const ProjectPart::Ptr projectPart)
|
||||
|
||||
QString projectPartIdForFile(const QString &filePath)
|
||||
{
|
||||
const ProjectPart::Ptr projectPart = projectPartForFile(filePath);
|
||||
const ProjectPart::ConstPtr projectPart = projectPartForFile(filePath);
|
||||
|
||||
if (isProjectPartLoaded(projectPart))
|
||||
return projectPart->id(); // OK, Project Part is still loaded
|
||||
@@ -371,7 +371,7 @@ static QJsonObject createFileObject(const FilePath &buildDir,
|
||||
return fileObject;
|
||||
}
|
||||
|
||||
GenerateCompilationDbResult generateCompilationDB(const CppTools::ProjectInfo::Ptr projectInfo,
|
||||
GenerateCompilationDbResult generateCompilationDB(const CppTools::ProjectInfo::ConstPtr projectInfo,
|
||||
CompilationDbPurpose purpose,
|
||||
const ClangDiagnosticConfig &warningsConfig,
|
||||
const QStringList &projectOptions)
|
||||
@@ -392,7 +392,7 @@ GenerateCompilationDbResult generateCompilationDB(const CppTools::ProjectInfo::P
|
||||
}
|
||||
compileCommandsFile.write("[");
|
||||
|
||||
for (ProjectPart::Ptr projectPart : projectInfo->projectParts()) {
|
||||
for (ProjectPart::ConstPtr projectPart : projectInfo->projectParts()) {
|
||||
QStringList args;
|
||||
if (purpose == CompilationDbPurpose::Project)
|
||||
args = projectPartArguments(*projectPart);
|
||||
|
||||
@@ -61,9 +61,9 @@ QStringList createClangOptions(const CppTools::ProjectPart &projectPart, const Q
|
||||
const CppTools::ClangDiagnosticConfig &warningsConfig,
|
||||
const QStringList &projectOptions);
|
||||
|
||||
CppTools::ProjectPart::Ptr projectPartForFile(const QString &filePath);
|
||||
CppTools::ProjectPart::Ptr projectPartForFileBasedOnProcessor(const QString &filePath);
|
||||
bool isProjectPartLoaded(const CppTools::ProjectPart::Ptr projectPart);
|
||||
CppTools::ProjectPart::ConstPtr projectPartForFile(const QString &filePath);
|
||||
CppTools::ProjectPart::ConstPtr projectPartForFileBasedOnProcessor(const QString &filePath);
|
||||
bool isProjectPartLoaded(const CppTools::ProjectPart::ConstPtr projectPart);
|
||||
QString projectPartIdForFile(const QString &filePath);
|
||||
int clangColumn(const QTextBlock &line, int cppEditorColumn);
|
||||
int cppEditorColumn(const QTextBlock &line, int clangColumn);
|
||||
@@ -87,7 +87,7 @@ public:
|
||||
};
|
||||
|
||||
enum class CompilationDbPurpose { Project, CodeModel };
|
||||
GenerateCompilationDbResult generateCompilationDB(const CppTools::ProjectInfo::Ptr projectInfo,
|
||||
GenerateCompilationDbResult generateCompilationDB(const CppTools::ProjectInfo::ConstPtr projectInfo,
|
||||
CompilationDbPurpose purpose, const CppTools::ClangDiagnosticConfig &warningsConfig,
|
||||
const QStringList &projectOptions);
|
||||
|
||||
|
||||
@@ -246,7 +246,7 @@ bool OpenEditorAtCursorPosition::waitUntil(const std::function<bool ()> &conditi
|
||||
return false;
|
||||
}
|
||||
|
||||
CppTools::ProjectPart::Ptr createProjectPart(const Utils::FilePath &projectFilePath,
|
||||
CppTools::ProjectPart::ConstPtr createProjectPart(const Utils::FilePath &projectFilePath,
|
||||
const QStringList &files,
|
||||
const ProjectExplorer::Macros ¯os)
|
||||
{
|
||||
@@ -262,15 +262,15 @@ CppTools::ProjectPart::Ptr createProjectPart(const Utils::FilePath &projectFileP
|
||||
return ProjectPart::create(projectFilePath, rpp, {}, projectFiles);
|
||||
}
|
||||
|
||||
CppTools::ProjectInfo::Ptr createProjectInfo(ProjectExplorer::Project *project,
|
||||
CppTools::ProjectInfo::ConstPtr createProjectInfo(ProjectExplorer::Project *project,
|
||||
const QStringList &files,
|
||||
const ProjectExplorer::Macros ¯os)
|
||||
{
|
||||
using namespace CppTools;
|
||||
QTC_ASSERT(project, return {});
|
||||
|
||||
const CppTools::ProjectPart::Ptr projectPart = createProjectPart(project->projectFilePath(),
|
||||
files, macros);
|
||||
const CppTools::ProjectPart::ConstPtr projectPart
|
||||
= createProjectPart(project->projectFilePath(), files, macros);
|
||||
const auto projectInfo = ProjectInfo::create(
|
||||
{project, ProjectExplorer::KitInfo(nullptr), {}, {}}, {projectPart});
|
||||
return projectInfo;
|
||||
@@ -292,7 +292,7 @@ public:
|
||||
bool load()
|
||||
{
|
||||
m_project = m_helper.createProject(QLatin1String("testProject"));
|
||||
const CppTools::ProjectInfo::Ptr projectInfo = createProjectInfo(m_project,
|
||||
const CppTools::ProjectInfo::ConstPtr projectInfo = createProjectInfo(m_project,
|
||||
m_projectFiles,
|
||||
m_projectMacros);
|
||||
const QSet<QString> filesIndexedAfterLoading = m_helper.updateProjectInfo(projectInfo);
|
||||
@@ -302,14 +302,14 @@ public:
|
||||
bool updateProject(const ProjectExplorer::Macros &updatedProjectMacros)
|
||||
{
|
||||
QTC_ASSERT(m_project, return false);
|
||||
const CppTools::ProjectInfo::Ptr updatedProjectInfo
|
||||
const CppTools::ProjectInfo::ConstPtr updatedProjectInfo
|
||||
= createProjectInfo(m_project, m_projectFiles, updatedProjectMacros);
|
||||
return updateProjectInfo(updatedProjectInfo);
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
bool updateProjectInfo(const CppTools::ProjectInfo::Ptr &projectInfo)
|
||||
bool updateProjectInfo(const CppTools::ProjectInfo::ConstPtr &projectInfo)
|
||||
{
|
||||
const QSet<QString> filesIndexedAfterLoading = m_helper.updateProjectInfo(projectInfo);
|
||||
return m_projectFiles.size() == filesIndexedAfterLoading.size();
|
||||
|
||||
Reference in New Issue
Block a user