diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2020-09-24 15:09:38 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2020-09-25 23:57:59 +0200 |
commit | 8c8df9e02567f408a5b5516987459f9973d4d092 (patch) | |
tree | 6e723446d81087715c6ae0f5c06147eb3ac31a83 /tools/qmllint/findwarnings.h | |
parent | 294bcb3f3c59ebe9229205a204dacafa6642e0df (diff) |
qmllint: Split available names into exported, imported, C++ names
exported names are the names a component intends to export. imported
names are the names the importing component sees, possibly adding a
prefix. C++ names are only used in qmltypes files for non-composite
types.
Change-Id: I843e34f07a026a06931ed76d72a3cce98e3e5552
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tools/qmllint/findwarnings.h')
-rw-r--r-- | tools/qmllint/findwarnings.h | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/tools/qmllint/findwarnings.h b/tools/qmllint/findwarnings.h index f16cff595c..7e3ea14128 100644 --- a/tools/qmllint/findwarnings.h +++ b/tools/qmllint/findwarnings.h @@ -60,16 +60,28 @@ public: bool check(); private: + struct ImportedTypes + { + // C++ names used in qmltypes files for non-composite types + QHash<QString, ScopeTree::Ptr> cppNames; + + // Names a component intends to export, without prefix + QHash<QString, ScopeTree::Ptr> exportedQmlNames; + + // Names the importing component sees, possibly adding a prefix + QHash<QString, ScopeTree::Ptr> importedQmlNames; + }; + class Importer { public: Importer(const QString ¤tDir, const QStringList &importPaths) : m_currentDir(currentDir), m_importPaths(importPaths) {} - QHash<QString, ScopeTree::ConstPtr> importBareQmlTypes(const QStringList &qmltypesFiles); - QHash<QString, ScopeTree::ConstPtr> importFileOrDirectory( - const QString &fileOrDirectory, const QString &prefix); - QHash<QString, ScopeTree::ConstPtr> importModule( + ImportedTypes importBareQmlTypes(const QStringList &qmltypesFiles); + ImportedTypes importFileOrDirectory( + const QString &fileOrDirectory, const QString &prefix = QString()); + ImportedTypes importModule( const QString &module, const QString &prefix = QString(), QTypeRevision version = QTypeRevision()); @@ -100,10 +112,10 @@ private: QSet<QPair<QString, QString>> m_seenImports; QStringList m_warnings; - QHash<QString, ScopeTree::ConstPtr> m_exportedName2Scope; + ImportedTypes m_exportedName2Scope; }; - QHash<QString, ScopeTree::ConstPtr> m_rootScopeImports; + ImportedTypes m_rootScopeImports; ScopeTree::Ptr m_rootScope; ScopeTree::Ptr m_currentScope; |