Merge remote-tracking branch 'origin/4.15'

Conflicts:
	src/libs/sqlite/sqlitebasestatement.h
	src/plugins/qmldesigner/qmldesignerplugin.cpp

Change-Id: I0fa0a8a7feffed24c0d2bc26eca86590f1156755
This commit is contained in:
Tim Jenssen
2021-05-06 13:06:28 +02:00
42 changed files with 415 additions and 335 deletions

View File

@@ -1366,7 +1366,9 @@ bool Check::visit(Block *ast)
&& !cast<WhileStatement *>(p)
&& !cast<IfStatement *>(p)
&& !cast<SwitchStatement *>(p)
&& !cast<WithStatement *>(p)) {
&& !isCaseOrDefault(p)
&& !cast<WithStatement *>(p)
&& hasVarStatement(ast)) {
addMessage(WarnBlock, ast->lbraceToken);
}
if (!ast->statements
@@ -1656,6 +1658,33 @@ bool Check::isQtQuick2Ui() const
return _doc->language() == Dialect::QmlQtQuick2Ui;
}
bool Check::isCaseOrDefault(Node *n)
{
if (!cast<StatementList *>(n))
return false;
if (Node *p = parent(1))
return p->kind == Node::Kind_CaseClause || p->kind == Node::Kind_DefaultClause;
return false;
}
bool Check::hasVarStatement(AST::Block *b) const
{
QTC_ASSERT(b, return false);
StatementList *s = b->statements;
while (s) {
if (auto var = cast<VariableStatement *>(s->statement)) {
VariableDeclarationList *declList = var->declarations;
while (declList) {
if (declList->declaration && declList->declaration->scope == VariableScope::Var)
return true;
declList = declList->next;
}
}
s = s->next;
}
return false;
}
bool Check::visit(NewExpression *ast)
{
checkNewExpression(ast->expression);

View File

@@ -122,6 +122,9 @@ private:
bool isQtQuick2() const;
bool isQtQuick2Ui() const;
bool isCaseOrDefault(AST::Node *n);
bool hasVarStatement(AST::Block *b) const;
AST::Node *parent(int distance = 0);
Document::Ptr _doc;