diff options
author | hjk <hjk@qt.io> | 2022-11-23 16:28:12 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2022-11-25 09:23:39 +0000 |
commit | 40ba25b69120def09ff6c25cda77fcb0a377417d (patch) | |
tree | f888b375895e58ebea14098e85631bc473f17583 /src/libs/cplusplus/CppDocument.cpp | |
parent | ef9777412269f5b5cde862d133816373ef1ee57d (diff) | |
download | qt-creator-40ba25b69120def09ff6c25cda77fcb0a377417d.tar.gz |
CPlusPlus: Return FilePaths from Document::includedFile
... and fix fallout.
Change-Id: Ieaad57700fa48d0c4a0dd9bf2c284315579b9473
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/libs/cplusplus/CppDocument.cpp')
-rw-r--r-- | src/libs/cplusplus/CppDocument.cpp | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/src/libs/cplusplus/CppDocument.cpp b/src/libs/cplusplus/CppDocument.cpp index 458e90af04..7a92e7ef95 100644 --- a/src/libs/cplusplus/CppDocument.cpp +++ b/src/libs/cplusplus/CppDocument.cpp @@ -22,6 +22,8 @@ #include <cplusplus/TypeVisitor.h> #include <cplusplus/CoreTypes.h> +#include <utils/algorithm.h> + #include <QBitArray> #include <QByteArray> #include <QDebug> @@ -297,13 +299,13 @@ void Document::setLastModified(const QDateTime &lastModified) _lastModified = lastModified; } -QStringList Document::includedFiles() const +FilePaths Document::includedFiles() const { QStringList files; for (const Include &i : std::as_const(_resolvedIncludes)) files.append(i.resolvedFileName()); files.removeDuplicates(); - return files; + return transform(files, &FilePath::fromString); } // This assumes to be called with a QDir::cleanPath cleaned fileName. @@ -762,18 +764,18 @@ Document::Ptr Snapshot::documentFromSource(const QByteArray &preprocessedCode, return newDoc; } -QSet<QString> Snapshot::allIncludesForDocument(const QString &fileName) const +QSet<FilePath> Snapshot::allIncludesForDocument(const FilePath &filePath) const { - QSet<QString> result; + QSet<FilePath> result; - QStack<QString> files; - files.push(fileName); + QStack<FilePath> files; + files.push(filePath); while (!files.isEmpty()) { - QString file = files.pop(); + FilePath file = files.pop(); if (Document::Ptr doc = document(file)) { - const QStringList includedFiles = doc->includedFiles(); - for (const QString &inc : includedFiles) { + const FilePaths includedFiles = doc->includedFiles(); + for (const FilePath &inc : includedFiles) { if (!result.contains(inc)) { result.insert(inc); files.push(inc); @@ -815,10 +817,10 @@ QList<Snapshot::IncludeLocation> Snapshot::includeLocationsOfDocument( return result; } -Utils::FilePaths Snapshot::filesDependingOn(const Utils::FilePath &fileName) const +FilePaths Snapshot::filesDependingOn(const FilePath &filePath) const { updateDependencyTable(); - return m_deps.filesDependingOn(fileName); + return m_deps.filesDependingOn(filePath); } void Snapshot::updateDependencyTable() const @@ -838,9 +840,9 @@ bool Snapshot::operator==(const Snapshot &other) const return _documents == other._documents; } -Document::Ptr Snapshot::document(const Utils::FilePath &fileName) const +Document::Ptr Snapshot::document(const FilePath &filePath) const { - return _documents.value(fileName); + return _documents.value(filePath); } Snapshot Snapshot::simplified(Document::Ptr doc) const @@ -849,9 +851,9 @@ Snapshot Snapshot::simplified(Document::Ptr doc) const if (doc) { snapshot.insert(doc); - const QSet<QString> fileNames = allIncludesForDocument(doc->filePath().toString()); - for (const QString &fileName : fileNames) - if (Document::Ptr inc = document(fileName)) + const QSet<FilePath> filePaths = allIncludesForDocument(doc->filePath()); + for (const FilePath &filePath : filePaths) + if (Document::Ptr inc = document(filePath)) snapshot.insert(inc); } |