diff options
author | Fawzi Mohamed <fawzi.mohamed@qt.io> | 2020-02-28 17:51:32 +0100 |
---|---|---|
committer | Fawzi Mohamed <fawzi.mohamed@qt.io> | 2020-03-03 15:31:10 +0000 |
commit | b09a48599e7e5db5447189136353b79aca3898cf (patch) | |
tree | 5f6f3b1d4da3ed746caa612992d94ed21978dd75 /src/libs/qmljs/qmljscheck.cpp | |
parent | a24dead5f63d7eb0b209539daebf5b2ce558b1c0 (diff) | |
download | qt-creator-b09a48599e7e5db5447189136353b79aca3898cf.tar.gz |
Update qmljs parser to Qt 5.15 parser
* parser side support for annotations, inline components, new UiVersion
and all the things included in QT 5.15 parser
* SourceLocation moved from QmlJS:AST to QmlJS
* Visitors now need to handle throwRecursionDepthError
* BaseVisitor for visitors that want to override all visit
Task-number: QTCREATORBUG-23591
Change-Id: I682a30d0b08b6c929739fd0e339ef6fbde3eb630
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/libs/qmljs/qmljscheck.cpp')
-rw-r--r-- | src/libs/qmljs/qmljscheck.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp index 64cb19f2ed..a54371603c 100644 --- a/src/libs/qmljs/qmljscheck.cpp +++ b/src/libs/qmljs/qmljscheck.cpp @@ -313,6 +313,12 @@ protected: _state = ReachesEnd; return false; } + + void throwRecursionDepthError() override + { + // handle differently? ReturnOrThrow declares unreachable code, but probably leads to bogus warnings + _state = ReachesEnd; + } }; class MarkUnreachableCode : protected ReachesEndCheck @@ -352,6 +358,11 @@ protected: if (message.isValid()) _messages += message; } + + void throwRecursionDepthError() override + { + _messages.append(Message(ErrHitMaximumRecursion, SourceLocation())); + } }; class DeclarationsCheck : protected Visitor @@ -510,6 +521,11 @@ protected: --_block; } + void throwRecursionDepthError() override + { + addMessage(ErrHitMaximumRecursion, SourceLocation()); + } + private: void addMessage(StaticAnalysis::Type type, const SourceLocation &loc, const QString &arg1 = QString()) { @@ -808,6 +824,11 @@ void Check::endVisit(UiObjectInitializer *) m_idStack.pop(); } +void Check::throwRecursionDepthError() +{ + addMessage(ErrHitMaximumRecursion, SourceLocation()); +} + void Check::checkProperty(UiQualifiedId *qualifiedId) { const QString id = toString(qualifiedId); |