From 39db18f96870d794004e2d52aa663ea05adf0070 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Mon, 7 Feb 2022 15:10:44 +0100 Subject: [PATCH] QmlJS: Soften strict equality check Pt III Adapt to differences Qt5 vs Qt6. Fixes: QTCREATORBUG-25917 Change-Id: Ieee1cf0442016c62b82bd932dd62d0dc9a78bc26 Reviewed-by: Fabian Kosmale Reviewed-by: Reviewed-by: Fawzi Mohamed --- src/libs/qmljs/qmljscheck.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/libs/qmljs/qmljscheck.cpp b/src/libs/qmljs/qmljscheck.cpp index 21c501791c6..7fe9885bdd6 100644 --- a/src/libs/qmljs/qmljscheck.cpp +++ b/src/libs/qmljs/qmljscheck.cpp @@ -1295,7 +1295,17 @@ static bool isIntegerValue(const Value *value) if (value->asNumberValue() || value->asIntValue()) return true; if (auto obj = value->asObjectValue()) - return obj->className() == "Number"; + return obj->className() == "Number" || obj->className() == "int"; + + return false; +} + +static bool isStringValue(const Value *value) +{ + if (value->asStringValue()) + return true; + if (auto obj = value->asObjectValue()) + return obj->className() == "QString" || obj->className() == "string"; return false; } @@ -1311,6 +1321,8 @@ static bool strictCompareConstant(const Value *lhs, const Value *rhs) return false; if (isIntegerValue(lhs) && isIntegerValue(rhs)) return false; + if (isStringValue(lhs) && isStringValue(rhs)) + return false; if (lhs->asBooleanValue() && !rhs->asBooleanValue()) return true; if (lhs->asNumberValue() && !rhs->asNumberValue())