aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qqmltypecompiler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/compiler/qqmltypecompiler.cpp')
-rw-r--r--src/qml/compiler/qqmltypecompiler.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/qml/compiler/qqmltypecompiler.cpp b/src/qml/compiler/qqmltypecompiler.cpp
index fd3d8a92e3..f6eb4bc40e 100644
--- a/src/qml/compiler/qqmltypecompiler.cpp
+++ b/src/qml/compiler/qqmltypecompiler.cpp
@@ -1275,9 +1275,13 @@ void QQmlComponentAndAliasResolver::findAndRegisterImplicitComponents(const QtQm
const QtQml::QmlObject *targetObject = qmlObjects->at(binding->value.objectIndex);
QQmlCompiledData::TypeReference *tr = resolvedTypes->value(targetObject->inheritedTypeNameIndex);
Q_ASSERT(tr);
- QQmlType *targetType = tr->type;
- if (targetType && targetType->metaObject() == &QQmlComponent::staticMetaObject)
- continue;
+ if (QQmlType *targetType = tr->type) {
+ if (targetType->metaObject() == &QQmlComponent::staticMetaObject)
+ continue;
+ } else if (tr->component) {
+ if (tr->component->rootPropertyCache->firstCppMetaObject() == &QQmlComponent::staticMetaObject)
+ continue;
+ }
QQmlPropertyData *pd = 0;
if (binding->propertyNameIndex != 0) {