diff options
Diffstat (limited to 'src/qmlcompiler/qqmljsutils.cpp')
| -rw-r--r-- | src/qmlcompiler/qqmljsutils.cpp | 26 |
1 files changed, 9 insertions, 17 deletions
diff --git a/src/qmlcompiler/qqmljsutils.cpp b/src/qmlcompiler/qqmljsutils.cpp index 57564efee6..f5ee66b527 100644 --- a/src/qmlcompiler/qqmljsutils.cpp +++ b/src/qmlcompiler/qqmljsutils.cpp @@ -204,19 +204,15 @@ QQmlJSUtils::sourceDirectoryPath(const QQmlJSImporter *importer, const QString & Utility method that checks if one of the registers is var, and the other can be efficiently compared to it */ -bool canStrictlyCompareWithVar(const QQmlJSTypeResolver *typeResolver, - const QQmlJSRegisterContent &lhsContent, - const QQmlJSRegisterContent &rhsContent) +bool canStrictlyCompareWithVar( + const QQmlJSTypeResolver *typeResolver, const QQmlJSScope::ConstPtr &lhsType, + const QQmlJSScope::ConstPtr &rhsType) { Q_ASSERT(typeResolver); const auto varType = typeResolver->varType(); const auto nullType = typeResolver->nullType(); const auto voidType = typeResolver->voidType(); - // Use containedType() because nullptr is not a stored type. - const auto lhsType = typeResolver->containedType(lhsContent); - const auto rhsType = typeResolver->containedType(rhsContent); - return (typeResolver->equals(lhsType, varType) && (typeResolver->equals(rhsType, nullType) || typeResolver->equals(rhsType, voidType))) || (typeResolver->equals(rhsType, varType) @@ -229,13 +225,11 @@ bool canStrictlyCompareWithVar(const QQmlJSTypeResolver *typeResolver, Utility method that checks if one of the registers is qobject, and the other can be efficiently compared to it */ -bool canCompareWithQObject(const QQmlJSTypeResolver *typeResolver, - const QQmlJSRegisterContent &lhsContent, - const QQmlJSRegisterContent &rhsContent) +bool canCompareWithQObject( + const QQmlJSTypeResolver *typeResolver, const QQmlJSScope::ConstPtr &lhsType, + const QQmlJSScope::ConstPtr &rhsType) { Q_ASSERT(typeResolver); - const auto lhsType = typeResolver->containedType(lhsContent); - const auto rhsType = typeResolver->containedType(rhsContent); return (lhsType->isReferenceType() && (rhsType->isReferenceType() || typeResolver->equals(rhsType, typeResolver->nullType()))) @@ -249,13 +243,11 @@ bool canCompareWithQObject(const QQmlJSTypeResolver *typeResolver, Utility method that checks if both sides are QUrl type. In future, that might be extended to support comparison with other types i.e QUrl vs string */ -bool canCompareWithQUrl(const QQmlJSTypeResolver *typeResolver, - const QQmlJSRegisterContent &lhsContent, - const QQmlJSRegisterContent &rhsContent) +bool canCompareWithQUrl( + const QQmlJSTypeResolver *typeResolver, const QQmlJSScope::ConstPtr &lhsType, + const QQmlJSScope::ConstPtr &rhsType) { Q_ASSERT(typeResolver); - const auto lhsType = typeResolver->containedType(lhsContent); - const auto rhsType = typeResolver->containedType(rhsContent); return typeResolver->equals(lhsType, typeResolver->urlType()) && typeResolver->equals(rhsType, typeResolver->urlType()); } |
