From b92f33cddd3f2c4e35a9237791135dcc47a26985 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 10 Jan 2014 13:34:41 +0100 Subject: [new compiler] Fix group property initializers Bindings with an object initializer without a type name must be group properties, instead of regular object bindings. Fixes font { pixelSize: 24 } versus font.pixelSize: 24 Change-Id: I468caa48be13f91f88545ef001ac9aaa46ba5d14 Reviewed-by: Lars Knoll --- src/qml/compiler/qqmlcodegenerator.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/qml/compiler/qqmlcodegenerator.cpp b/src/qml/compiler/qqmlcodegenerator.cpp index d1504b5baa..51881641cb 100644 --- a/src/qml/compiler/qqmlcodegenerator.cpp +++ b/src/qml/compiler/qqmlcodegenerator.cpp @@ -894,7 +894,13 @@ void QQmlCodeGenerator::appendBinding(const AST::SourceLocation &nameLocation, i binding->location.line = nameLocation.startLine; binding->location.column = nameLocation.startColumn; binding->flags = 0; - binding->type = QV4::CompiledData::Binding::Type_Object; + + // No type name on the initializer means it must be a group property + if (stringAt(_objects.at(objectIndex)->inheritedTypeNameIndex).isEmpty()) + binding->type = QV4::CompiledData::Binding::Type_GroupProperty; + else + binding->type = QV4::CompiledData::Binding::Type_Object; + binding->value.objectIndex = objectIndex; _object->bindings->append(binding); } -- cgit v1.2.3