aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmlcompiler/qqmljsregistercontent.cpp
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2024-11-19 12:12:44 +0100
committerUlf Hermann <ulf.hermann@qt.io>2024-11-21 15:20:17 +0100
commit0d117dc25e9dbf1695411d379b06f419feb028f4 (patch)
tree97ba97989aaae10f30aabf8ace66dc0e7c5dc3f7 /src/qmlcompiler/qqmljsregistercontent.cpp
parentead35e4cad82c93cf9d5cec4efb387d8168b09c6 (diff)
QmlCompiler: Phrase register content storage as register content
We will need to link the storage to its adjustment eventually. Task-number: QTBUG-124670 Change-Id: I50db4f7af34cc2f41f9a43e5fe271ecdf75fe655 Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Diffstat (limited to 'src/qmlcompiler/qqmljsregistercontent.cpp')
-rw-r--r--src/qmlcompiler/qqmljsregistercontent.cpp31
1 files changed, 17 insertions, 14 deletions
diff --git a/src/qmlcompiler/qqmljsregistercontent.cpp b/src/qmlcompiler/qqmljsregistercontent.cpp
index 04cc547f22..ab494fadf8 100644
--- a/src/qmlcompiler/qqmljsregistercontent.cpp
+++ b/src/qmlcompiler/qqmljsregistercontent.cpp
@@ -79,7 +79,7 @@ public:
friend size_t qHash(const QQmlJSRegisterContentPrivate &registerContent, size_t seed = 0)
{
seed = qHashMulti(
- seed, registerContent.m_storedType, registerContent.m_content.index(),
+ seed, registerContent.m_storage, registerContent.m_content.index(),
registerContent.m_variant, registerContent.m_scope);
switch (Kind(registerContent.m_content.index())) {
@@ -109,7 +109,7 @@ public:
friend bool operator==(
const QQmlJSRegisterContentPrivate &a, const QQmlJSRegisterContentPrivate &b)
{
- return a.m_storedType == b.m_storedType && a.m_variant == b.m_variant
+ return a.m_storage == b.m_storage && a.m_variant == b.m_variant
&& a.m_scope == b.m_scope && a.m_content == b.m_content;
}
@@ -119,7 +119,7 @@ public:
return !(a == b);
}
- QQmlJSScope::ConstPtr m_storedType;
+ QQmlJSRegisterContent m_storage;
QQmlJSRegisterContent m_scope;
Content m_content;
ContentVariant m_variant = ContentVariant::Unknown;
@@ -160,7 +160,7 @@ QString QQmlJSRegisterContent::descriptiveName() const
{
using Kind = QQmlJSRegisterContentPrivate::Kind;
- if (d->m_storedType.isNull() && containedType().isNull())
+ if (!d->m_storage.isValid() && containedType().isNull())
return u"(invalid type)"_s;
const auto scope = [this]() -> QString {
@@ -184,15 +184,17 @@ QString QQmlJSRegisterContent::descriptiveName() const
case Kind::Type: {
const QQmlJSScope::ConstPtr contained = type();
result += contained->internalName();
- if (d->m_storedType && d->m_storedType->internalName() != contained->internalName())
- result += u" stored as "_s + d->m_storedType->internalName();
+ const QQmlJSScope::ConstPtr stored = d->m_storage.containedType();
+ if (stored && stored->internalName() != contained->internalName())
+ result += u" stored as "_s + stored->internalName();
return result;
}
case Kind::Property: {
const QQmlJSMetaProperty prop = property();
result += scope() + prop.propertyName() + u" with type "_s + prop.typeName();
- if (d->m_storedType && d->m_storedType->internalName() != prop.typeName())
- result += u" (stored as "_s + d->m_storedType->internalName() + u")";
+ const QQmlJSScope::ConstPtr stored = d->m_storage.containedType();
+ if (stored && stored->internalName() != prop.typeName())
+ result += u" (stored as "_s + stored->internalName() + u")";
return result;
}
case Kind::Method: {
@@ -201,8 +203,8 @@ QString QQmlJSRegisterContent::descriptiveName() const
result = scope() + u"(unknown method)"_s;
else
result = scope() + methods[0].methodName() + u"(...)"_s;
- if (d->m_storedType)
- return result + u" (stored as "_s + d->m_storedType->internalName() + u")";
+ if (d->m_storage.isValid())
+ return result + u" (stored as "_s + d->m_storage.containedType()->internalName() + u")";
return result;
}
case Kind::Enum: {
@@ -212,8 +214,8 @@ QString QQmlJSRegisterContent::descriptiveName() const
result = scope() + enumName;
else
result = scope() + enumName + u"::"_s + memberName;
- if (d->m_storedType)
- return result + u" (stored as "_s + d->m_storedType->internalName() + u")";
+ if (d->m_storage.isValid())
+ return result + u" (stored as "_s + d->m_storage.containedType()->internalName() + u")";
return result;
}
case Kind::ImportNamespace: {
@@ -355,7 +357,7 @@ QQmlJSRegisterContent QQmlJSRegisterContent::attachee() const
QQmlJSScope::ConstPtr QQmlJSRegisterContent::storedType() const
{
- return d->m_storedType;
+ return d->m_storage.containedType();
}
QQmlJSScope::ConstPtr QQmlJSRegisterContent::containedType() const
@@ -548,7 +550,8 @@ QQmlJSRegisterContent QQmlJSRegisterContentPool::storedIn(
const QQmlJSRegisterContent &content, const QQmlJSScope::ConstPtr &newStoredType)
{
QQmlJSRegisterContentPrivate *result = clone(content.d);
- result->m_storedType = newStoredType;
+ result->m_storage = create(
+ newStoredType, QQmlJSRegisterContent::InvalidLookupIndex, ContentVariant::Storage);
return result;
}