diff options
Diffstat (limited to 'src/qml/compiler/qqmltypecompiler.cpp')
-rw-r--r-- | src/qml/compiler/qqmltypecompiler.cpp | 10 |
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) { |