From ca3504682724a7250bdbb5d461a30be2022a759c Mon Sep 17 00:00:00 2001
From: Christian Kamm <christian.d.kamm@nokia.com>
Date: Wed, 7 Sep 2011 11:01:13 +0200
Subject: [PATCH] QmlJS checks: Improve warning about accidental empty blocks.

Change-Id: I2bddd65aef9092bf87f5a441e065ebca0e772174
Reviewed-on: http://codereview.qt-project.org/4331
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
---
 src/libs/qmljs/qmljscheck.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp
index dec32a42345..4395330ca5e 100644
--- a/src/libs/qmljs/qmljscheck.cpp
+++ b/src/libs/qmljs/qmljscheck.cpp
@@ -737,6 +737,7 @@ bool Check::visit(Block *ast)
     if (Node *p = parent()) {
         if (_options & WarnBlocks
                 && !cast<UiScriptBinding *>(p)
+                && !cast<UiPublicMember *>(p)
                 && !cast<TryStatement *>(p)
                 && !cast<Catch *>(p)
                 && !cast<Finally *>(p)
@@ -751,6 +752,12 @@ bool Check::visit(Block *ast)
                 && !cast<WithStatement *>(p)) {
             warning(ast->lbraceToken, tr("blocks do not introduce a new scope, avoid"));
         }
+        if (!ast->statements
+                && (cast<UiPublicMember *>(p)
+                    || cast<UiScriptBinding *>(p))) {
+            warning(locationFromRange(ast->firstSourceLocation(), ast->lastSourceLocation()),
+                    tr("unintentional empty block, use ({}) for empty object literal"));
+        }
     }
     return true;
 }
-- 
GitLab