From 5355c8ef4cb2f8f795e47391353b874596a05f75 Mon Sep 17 00:00:00 2001
From: Christian Kamm <christian.d.kamm@nokia.com>
Date: Mon, 29 Nov 2010 11:52:30 +0100
Subject: [PATCH] QmlJS: Don't warn for "string == ''" and "boolean == true".

Reviewed-by: Roberto Raggi
---
 src/libs/qmljs/qmljscheck.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp
index 389053bc448..65a79f2cf3d 100644
--- a/src/libs/qmljs/qmljscheck.cpp
+++ b/src/libs/qmljs/qmljscheck.cpp
@@ -545,13 +545,15 @@ static bool shouldAvoidNonStrictEqualityCheck(ExpressionNode *exp, const Value *
     if (NumericLiteral *literal = cast<NumericLiteral *>(exp)) {
         if (literal->value == 0 && !other->asNumberValue())
             return true;
-    } else if (cast<TrueLiteral *>(exp) || cast<FalseLiteral *>(exp) || cast<NullExpression *>(exp)) {
+    } else if ((cast<TrueLiteral *>(exp) || cast<FalseLiteral *>(exp)) && !other->asBooleanValue()) {
+        return true;
+    } else if (cast<NullExpression *>(exp)) {
         return true;
     } else if (IdentifierExpression *ident = cast<IdentifierExpression *>(exp)) {
         if (ident->name && ident->name->asString() == QLatin1String("undefined"))
             return true;
     } else if (StringLiteral *literal = cast<StringLiteral *>(exp)) {
-        if (!literal->value || literal->value->asString().isEmpty())
+        if ((!literal->value || literal->value->asString().isEmpty()) && !other->asStringValue())
             return true;
     }
     return false;
-- 
GitLab