Qt 6.x
The Qt SDK
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
qqmljsutils.cpp File Reference
#include "qqmljsutils_p.h"
#include "qqmljstyperesolver_p.h"
#include "qqmljsscopesbyid_p.h"
#include <algorithm>
+ Include dependency graph for qqmljsutils.cpp:

Go to the source code of this file.

Functions

template<typename ScopeForId >
static QQmlJSUtils::ResolvedAlias resolveAlias (ScopeForId scopeForId, const QQmlJSMetaProperty &property, const QQmlJSScope::ConstPtr &owner, const QQmlJSUtils::AliasResolutionVisitor &visitor)
 
bool canStrictlyCompareWithVar (const QQmlJSTypeResolver *typeResolver, const QQmlJSRegisterContent &lhsContent, const QQmlJSRegisterContent &rhsContent)
 
bool canCompareWithQObject (const QQmlJSTypeResolver *typeResolver, const QQmlJSRegisterContent &lhsContent, const QQmlJSRegisterContent &rhsContent)
 
bool canCompareWithQUrl (const QQmlJSTypeResolver *typeResolver, const QQmlJSRegisterContent &lhsContent, const QQmlJSRegisterContent &rhsContent)
 

Function Documentation

◆ canCompareWithQObject()

bool canCompareWithQObject ( const QQmlJSTypeResolver typeResolver,
const QQmlJSRegisterContent lhsContent,
const QQmlJSRegisterContent rhsContent 
)

Utility method that checks if one of the registers is qobject, and the other can be efficiently compared to it

Definition at line 232 of file qqmljsutils.cpp.

References QQmlJSTypeResolver::containedType(), QQmlJSTypeResolver::equals(), QQmlJSTypeResolver::nullType(), and Q_ASSERT.

+ Here is the call graph for this function:

◆ canCompareWithQUrl()

bool canCompareWithQUrl ( const QQmlJSTypeResolver typeResolver,
const QQmlJSRegisterContent lhsContent,
const QQmlJSRegisterContent rhsContent 
)

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

Definition at line 252 of file qqmljsutils.cpp.

References QQmlJSTypeResolver::containedType(), QQmlJSTypeResolver::equals(), Q_ASSERT, and QQmlJSTypeResolver::urlType().

+ Here is the call graph for this function:

◆ canStrictlyCompareWithVar()

bool canStrictlyCompareWithVar ( const QQmlJSTypeResolver typeResolver,
const QQmlJSRegisterContent lhsContent,
const QQmlJSRegisterContent rhsContent 
)

Utility method that checks if one of the registers is var, and the other can be efficiently compared to it

Definition at line 207 of file qqmljsutils.cpp.

References QQmlJSTypeResolver::containedType(), QQmlJSTypeResolver::equals(), QQmlJSTypeResolver::nullType(), Q_ASSERT, QQmlJSTypeResolver::varType(), and QQmlJSTypeResolver::voidType().

+ Here is the call graph for this function:

◆ resolveAlias()

template<typename ScopeForId >
static QQmlJSUtils::ResolvedAlias resolveAlias ( ScopeForId  scopeForId,
const QQmlJSMetaProperty property,
const QQmlJSScope::ConstPtr owner,
const QQmlJSUtils::AliasResolutionVisitor visitor 
)
static

Fully resolves alias property and returns the information about the origin, which is not an alias.

Definition at line 21 of file qqmljsutils.cpp.

References QQmlJSUtils::AliasTarget_Object, QQmlJSUtils::AliasTarget_Property, QQmlJSUtils::ResolvedAlias::owner, QQmlJSUtils::AliasResolutionVisitor::processResolvedId, QQmlJSUtils::AliasResolutionVisitor::processResolvedProperty, QQmlJSScope::property(), property, Q_ASSERT, and QQmlJSUtils::AliasResolutionVisitor::reset.

+ Here is the call graph for this function: