diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2019-11-11 18:18:04 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2019-11-18 10:39:23 +0100 |
commit | 6fb335ebcec9c5efc6a2d7786e7bbba23c583d48 (patch) | |
tree | 8cc161f7423757e6820d9db40a943464f98fc3aa /tools/qmllint/findunqualified.h | |
parent | 61d7713ead80a6f5b972778d2e47843af756039e (diff) |
qmllint: Cleanup
qmllint needed to be refactored before we can add any new functionality:
* Fix all the (C++) linter warnings
* Remove pointless namespaces
* Merge ScopeTree and FakeMetaObject into one class
* Remove the "Fake" from class and variable names
* Remove dead code
* Add "We mean it" warnings everywhere
* Unify #include style
This also "accidentally" fixes the automatic matching of signal handlers
in Connections elements to signals in their parent scopes.
Change-Id: Idf8daae34dfd6c0ee00da28b017f921da3eba25c
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'tools/qmllint/findunqualified.h')
-rw-r--r-- | tools/qmllint/findunqualified.h | 63 |
1 files changed, 38 insertions, 25 deletions
diff --git a/tools/qmllint/findunqualified.h b/tools/qmllint/findunqualified.h index 80413bd402..8b79918d90 100644 --- a/tools/qmllint/findunqualified.h +++ b/tools/qmllint/findunqualified.h @@ -29,32 +29,41 @@ #ifndef FINDUNQUALIFIED_H #define FINDUNQUALIFIED_H -#include "qmljstypedescriptionreader.h" -#include "qcoloroutput_p.h" - -#include <private/qqmljsastvisitor_p.h> -#include <private/qqmljsast_p.h> - -#include <QScopedPointer> - -class ScopeTree; -enum class ScopeType; - -class FindUnqualifiedIDVisitor : public QQmlJS::AST::Visitor { - +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. + +#include "typedescriptionreader.h" +#include "scopetree.h" +#include "qcoloroutput.h" + +#include <QtQml/private/qqmljsastvisitor_p.h> +#include <QtQml/private/qqmljsast_p.h> + +#include <QtCore/qscopedpointer.h> + +class FindUnqualifiedIDVisitor : public QQmlJS::AST::Visitor +{ + Q_DISABLE_COPY_MOVE(FindUnqualifiedIDVisitor) public: - explicit FindUnqualifiedIDVisitor(QStringList const &qmltypeDirs, const QString& code, - const QString& fileName, bool silent); - ~FindUnqualifiedIDVisitor() override; + explicit FindUnqualifiedIDVisitor(QStringList qmltypeDirs, QString code, + QString fileName, bool silent); + ~FindUnqualifiedIDVisitor() override = default; bool check(); private: QScopedPointer<ScopeTree> m_rootScope; - ScopeTree *m_currentScope; - QHash<QString, LanguageUtils::FakeMetaObject::ConstPtr> m_exportedName2MetaObject; + ScopeTree *m_currentScope = nullptr; + QHash<QString, ScopeTree::ConstPtr> m_exportedName2Scope; QStringList m_qmltypeDirs; - const QString& m_code; - QHash<QString, LanguageUtils::FakeMetaObject::ConstPtr> m_qmlid2meta; + QString m_code; + QHash<QString, ScopeTree::ConstPtr> m_qmlid2scope; QString m_rootId; QString m_filePath; QSet<QPair<QString, QString>> m_alreadySeenImports; @@ -62,17 +71,22 @@ private: ColorOutput m_colorOut; bool m_visitFailed = false; - struct OutstandingConnection {QString targetName; ScopeTree *scope; QQmlJS::AST::UiObjectDefinition *uiod;}; + struct OutstandingConnection + { + QString targetName; + ScopeTree *scope; + QQmlJS::AST::UiObjectDefinition *uiod; + }; QVarLengthArray<OutstandingConnection, 3> m_outstandingConnections; // Connections whose target we have not encountered void enterEnvironment(ScopeType type, QString name); void leaveEnvironment(); - void importHelper(QString id, QString prefix, int major, int minor); - LanguageUtils::FakeMetaObject* localQmlFile2FakeMetaObject(QString filePath); + void importHelper(QString id, const QString &prefix, int major, int minor); + ScopeTree* localQmlFile2ScopeTree(const QString &filePath); void importDirectory(const QString &directory, const QString &prefix); - void importExportedNames(QStringRef prefix, QString name); + void importExportedNames(const QStringRef &prefix, QString name); void throwRecursionDepthError() override; @@ -130,5 +144,4 @@ private: bool visit(QQmlJS::AST::PatternElement *) override; }; - #endif // FINDUNQUALIFIED_H |