summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljscheck.cpp
diff options
context:
space:
mode:
authorFawzi Mohamed <fawzi.mohamed@qt.io>2020-02-28 17:51:32 +0100
committerFawzi Mohamed <fawzi.mohamed@qt.io>2020-03-03 15:31:10 +0000
commitb09a48599e7e5db5447189136353b79aca3898cf (patch)
tree5f6f3b1d4da3ed746caa612992d94ed21978dd75 /src/libs/qmljs/qmljscheck.cpp
parenta24dead5f63d7eb0b209539daebf5b2ce558b1c0 (diff)
downloadqt-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.cpp21
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);