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>
This commit is contained in:
Fawzi Mohamed
2020-02-28 17:51:32 +01:00
parent a24dead5f6
commit b09a48599e
88 changed files with 5290 additions and 4350 deletions

View File

@@ -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);