else
typeName = aliasProperty.typeName();
} else {
- typeName = idObject->metaObject()->className();
+ Q_ASSERT(idObject->type != -1); // How else did it get an id?
- //use the base type since it has been registered with metatype system
- int index = typeName.indexOf("_QML_");
- if (index != -1) {
- typeName = typeName.left(index);
- } else {
- index = typeName.indexOf("_QMLTYPE_");
- const QMetaObject *mo = idObject->metaObject();
- while (index != -1 && mo) {
- typeName = mo->superClass()->className();
- index = typeName.indexOf("_QMLTYPE_");
- mo = mo->superClass();
- }
- }
+ const QDeclarativeCompiledData::TypeReference &ref = output->types.at(idObject->type);
+ if (ref.type)
+ typeName = ref.type->typeName();
+ else
+ typeName = ref.component->root->className();
typeName += '*';
}
void aliasBindingsAssignCorrectly();
void aliasBindingsOverrideTarget();
void aliasWritesOverrideBindings();
+ void aliasToCompositeElement();
void realToInt();
void include();
}
}
+// Allow an alais to a composite element
+// QTBUG-20200
+void tst_qdeclarativeecmascript::aliasToCompositeElement()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("aliasToCompositeElement.qml"));
+
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ delete object;
+}
+
void tst_qdeclarativeecmascript::revisionErrors()
{
{