diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp index 3cc555692f1..ce75d41e5c0 100644 --- a/src/libs/qmljs/qmljscheck.cpp +++ b/src/libs/qmljs/qmljscheck.cpp @@ -587,6 +587,8 @@ bool Check::visit(Block *ast) && !cast(p) && !cast(p) && !cast(p) + && !cast(p) + && !cast(p) && !cast(p) && !cast(p) && !cast(p) @@ -615,8 +617,11 @@ bool Check::visit(VoidExpression *ast) bool Check::visit(Expression *ast) { if (_options & WarnCommaExpression && ast->left && ast->right) { - if (!cast(parent())) + Node *p = parent(); + if (!cast(p) + && !cast(p)) { warning(ast->commaToken, tr("avoid comma expressions")); + } } return true; } @@ -681,6 +686,13 @@ bool Check::visit(ForStatement *ast) return true; } +bool Check::visit(LocalForStatement *ast) +{ + if (ast->condition) + checkAssignInCondition(ast->condition); + return true; +} + bool Check::visit(WhileStatement *ast) { if (ast->expression) diff --git a/src/libs/qmljs/qmljscheck.h b/src/libs/qmljs/qmljscheck.h index 7230b1f886d..1c471b15a2c 100644 --- a/src/libs/qmljs/qmljscheck.h +++ b/src/libs/qmljs/qmljscheck.h @@ -88,6 +88,7 @@ protected: virtual bool visit(AST::ExpressionStatement *ast); virtual bool visit(AST::IfStatement *ast); virtual bool visit(AST::ForStatement *ast); + virtual bool visit(AST::LocalForStatement *ast); virtual bool visit(AST::WhileStatement *ast); virtual bool visit(AST::DoWhileStatement *ast); virtual bool visit(AST::CaseClause *ast);