aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmllint/findwarnings.h
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-09-25 16:14:53 +0200
committerUlf Hermann <ulf.hermann@qt.io>2020-09-28 13:26:52 +0200
commit4cd06638c198c7ed48680c63e9df943e3680e89e (patch)
tree1c4213b905d02646dbbd0c4ec006791b30aeac20 /tools/qmllint/findwarnings.h
parent9e2f4e112776149be550dbea6003a192cd931538 (diff)
qmllint: Make imports local
Imports are not transitive. qmllint gets this wrong so far. Fixing it reveals two tests where we use types we haven't imported. Import the relevant modules. Change-Id: I45f3229468d54137f97d6b699f3a98a1349bc412 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tools/qmllint/findwarnings.h')
-rw-r--r--tools/qmllint/findwarnings.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/tools/qmllint/findwarnings.h b/tools/qmllint/findwarnings.h
index cc56f628ee..2a0929b379 100644
--- a/tools/qmllint/findwarnings.h
+++ b/tools/qmllint/findwarnings.h
@@ -100,19 +100,25 @@ private:
QList<QQmlDirParser::Import> dependencies;
};
- void importHelper(const QString &module, const QString &prefix = QString(),
+ void importHelper(const QString &module, ImportedTypes *types,
+ const QString &prefix = QString(),
QTypeRevision version = QTypeRevision());
- void processImport(const QString &prefix, const Import &import, QTypeRevision version);
+ void processImport(const Import &import, ImportedTypes *types,
+ const QString &prefix = QString());
+ void importDependencies(const FindWarningVisitor::Importer::Import &import,
+ FindWarningVisitor::ImportedTypes *types,
+ const QString &prefix = QString(),
+ QTypeRevision version = QTypeRevision());
void readQmltypes(const QString &filename, QHash<QString, ScopeTree::Ptr> *objects);
Import readQmldir(const QString &dirname);
ScopeTree::Ptr localFile2ScopeTree(const QString &filePath);
QString m_currentDir;
QStringList m_importPaths;
- QSet<QPair<QString, QString>> m_seenImports;
+ QHash<QPair<QString, QTypeRevision>, Import> m_seenImports;
+ QHash<QString, ScopeTree::Ptr> m_importedFiles;
QStringList m_warnings;
- ImportedTypes m_exportedName2Scope;
};
ImportedTypes m_rootScopeImports;
@@ -147,7 +153,7 @@ private:
void enterEnvironment(ScopeType type, const QString &name);
void leaveEnvironment();
- void importExportedNames(QStringView prefix, QString name);
+ void importExportedNames(ScopeTree::ConstPtr scope);
void parseHeaders(QQmlJS::AST::UiHeaderItemList *headers);
ScopeTree::Ptr parseProgram(QQmlJS::AST::Program *program, const QString &name);