diff options
Diffstat (limited to 'src/qmlcompiler/qqmljsregistercontent.cpp')
-rw-r--r-- | src/qmlcompiler/qqmljsregistercontent.cpp | 22 |
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 |