From 847e5dfb61fff8a929f5ee42422fc7f8df336d32 Mon Sep 17 00:00:00 2001 From: Christian Kamm <christian.d.kamm@nokia.com> Date: Mon, 29 Nov 2010 12:21:02 +0100 Subject: [PATCH] QmlJS: Don't warn about expression statements in script bindings. Reviewed-by: Roberto Raggi --- src/libs/qmljs/qmljscheck.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp index 65a79f2cf3d..3cc555692f1 100644 --- a/src/libs/qmljs/qmljscheck.cpp +++ b/src/libs/qmljs/qmljscheck.cpp @@ -629,8 +629,7 @@ bool Check::visit(ExpressionStatement *ast) || cast<PreDecrementExpression *>(ast->expression) || cast<PreIncrementExpression *>(ast->expression) || cast<PostIncrementExpression *>(ast->expression) - || cast<PostDecrementExpression *>(ast->expression) - || cast<UiScriptBinding *>(parent()); + || cast<PostDecrementExpression *>(ast->expression); if (BinaryExpression *binary = cast<BinaryExpression *>(ast->expression)) { switch (binary->op) { case QSOperator::Assign: @@ -649,6 +648,16 @@ bool Check::visit(ExpressionStatement *ast) default: break; } } + if (!ok) { + for (int i = 0; Node *p = parent(i); ++i) { + if (UiScriptBinding *binding = cast<UiScriptBinding *>(p)) { + if (!cast<Block *>(binding->statement)) { + ok = true; + break; + } + } + } + } if (!ok) { warning(locationFromRange(ast->firstSourceLocation(), ast->lastSourceLocation()), -- GitLab