aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmlcompiler/qqmljsregistercontent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmlcompiler/qqmljsregistercontent.cpp')
-rw-r--r--src/qmlcompiler/qqmljsregistercontent.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/qmlcompiler/qqmljsregistercontent.cpp b/src/qmlcompiler/qqmljsregistercontent.cpp
index aef0453eac..57d101cf16 100644
--- a/src/qmlcompiler/qqmljsregistercontent.cpp
+++ b/src/qmlcompiler/qqmljsregistercontent.cpp
@@ -36,9 +36,9 @@ QString QQmlJSRegisterContent::descriptiveName() const
QString result = m_storedType->internalName() + u" of "_qs;
const auto scope = [this]() -> QString {
return (m_scope->internalName().isEmpty()
- ? (m_scope->fileName().isEmpty()
+ ? (m_scope->filePath().isEmpty()
? u"??"_qs
- : (u"(component in "_qs + m_scope->fileName() + u")"_qs))
+ : (u"(component in "_qs + m_scope->filePath() + u")"_qs))
: m_scope->internalName())
+ u"::"_qs;
};
@@ -67,6 +67,10 @@ QString QQmlJSRegisterContent::descriptiveName() const
case ImportNamespace: {
return u"import namespace %1"_qs.arg(std::get<uint>(m_content));
}
+ case Conversion: {
+ return u"conversion to %1"_qs.arg(
+ std::get<ConvertedTypes>(m_content).result->internalName());
+ }
}
Q_UNREACHABLE();
return result + u"wat?"_qs;
@@ -83,6 +87,9 @@ bool QQmlJSRegisterContent::isList() const
return prop.isList()
|| prop.type()->accessSemantics() == QQmlJSScope::AccessSemantics::Sequence;
}
+ case Conversion:
+ return std::get<ConvertedTypes>(m_content).result->accessSemantics()
+ == QQmlJSScope::AccessSemantics::Sequence;
default:
return false;
}
@@ -153,6 +160,17 @@ QQmlJSRegisterContent QQmlJSRegisterContent::create(const QQmlJSScope::ConstPtr
return result;
}
+QQmlJSRegisterContent QQmlJSRegisterContent::create(const QQmlJSScope::ConstPtr &storedType,
+ const QList<QQmlJSScope::ConstPtr> origins,
+ const QQmlJSScope::ConstPtr &conversion,
+ ContentVariant variant,
+ const QQmlJSScope::ConstPtr &scope)
+{
+ QQmlJSRegisterContent result(storedType, scope, variant);
+ result.m_content = ConvertedTypes { origins, conversion };
+ return result;
+}
+
bool operator==(const QQmlJSRegisterContent &a, const QQmlJSRegisterContent &b)
{
return a.m_storedType == b.m_storedType && a.m_variant == b.m_variant && a.m_scope == b.m_scope