summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljscheck.cpp
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2010-11-29 11:52:30 +0100
committerChristian Kamm <christian.d.kamm@nokia.com>2010-11-29 11:52:30 +0100
commit5355c8ef4cb2f8f795e47391353b874596a05f75 (patch)
tree0dea9e0ee07fd4d3b2123a2e7a98399c6b3643eb /src/libs/qmljs/qmljscheck.cpp
parent042ee8de010ee442c1ed818fac4650674131f7ce (diff)
downloadqt-creator-5355c8ef4cb2f8f795e47391353b874596a05f75.tar.gz
QmlJS: Don't warn for "string == ''" and "boolean == true".
Reviewed-by: Roberto Raggi
Diffstat (limited to 'src/libs/qmljs/qmljscheck.cpp')
-rw-r--r--src/libs/qmljs/qmljscheck.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp
index 389053bc44..65a79f2cf3 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;