diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2016-11-23 09:47:48 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2016-11-23 16:33:58 +0000 |
commit | 7b7fb7fe3ab8ce5db744329b2f138fd8b2a811ea (patch) | |
tree | afaa3f2bad8a66bd13d9bc2168c0af4017a6441d /src/qml/parser/qqmljs.g | |
parent | d274cff81027983de6cac3553bed38e712976210 (diff) |
Fix support for QML declared default list properties
The grammar was not permitting to write
default property list<Item> myChildren;
and instead developers had to work around it with an alias
property list<Item> myChildrenData;
default property alias myChildren: myChildrenData
which is not nice. Fortunately this is easy to fix in the grammar.
Task-number: QTBUG-10822
Change-Id: I4e914ddb9588913da09e9fb6c6aa154cf8a9e18f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/qml/parser/qqmljs.g')
-rw-r--r-- | src/qml/parser/qqmljs.g | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/qml/parser/qqmljs.g b/src/qml/parser/qqmljs.g index a562ecdfa5..a3ca9c44d0 100644 --- a/src/qml/parser/qqmljs.g +++ b/src/qml/parser/qqmljs.g @@ -1026,6 +1026,23 @@ case $rule_number: { } break; ./ +UiObjectMember: T_DEFAULT T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT JsIdentifier T_AUTOMATIC_SEMICOLON ; +UiObjectMember: T_DEFAULT T_PROPERTY T_IDENTIFIER T_LT UiPropertyType T_GT JsIdentifier T_SEMICOLON ; +/. +case $rule_number: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(5), stringRef(7)); + node->isDefaultMember = true; + node->defaultToken = loc(1); + node->typeModifier = stringRef(3); + node->propertyToken = loc(2); + node->typeModifierToken = loc(2); + node->typeToken = loc(4); + node->identifierToken = loc(7); + node->semicolonToken = loc(8); + sym(1).Node = node; +} break; +./ + UiObjectMember: T_PROPERTY UiPropertyType JsIdentifier T_COLON UiScriptStatement ; /. case $rule_number: { |