aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-06-04 13:31:33 +0200
committerLars Knoll <lars.knoll@qt.io>2018-06-21 13:30:34 +0000
commit3adc6dcf5ea078c9a365a63fb99f7869fd070cc2 (patch)
tree1a36c0d49c7bdcd62e423929fd3c6eee6510a1a2 /src
parent9959e9c364ca20012e54371d6919e8f2a9c6012f (diff)
Fix more test failures for destructuring expressions
Fix parsing of var { x = function(){} } = ... Change-Id: I524e39c7a556c392a5359eafc445b59020ccadf2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/qml/parser/qqmljs.g9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/qml/parser/qqmljs.g b/src/qml/parser/qqmljs.g
index cf9f1edd62..bc38655607 100644
--- a/src/qml/parser/qqmljs.g
+++ b/src/qml/parser/qqmljs.g
@@ -1766,12 +1766,15 @@ CoverInitializedName: IdentifierReference Initializer_In;
case $rule_number: {
AST::IdentifierPropertyName *name = new (pool) AST::IdentifierPropertyName(stringRef(1));
name->propertyNameToken = loc(1);
- AST::PatternProperty *node = new (pool) AST::PatternProperty(name, sym(2).Expression);
- node->colonToken = loc(2);
- sym(1).Node = node;
+ AST::IdentifierExpression *left = new (pool) AST::IdentifierExpression(stringRef(1));
+ left->identifierToken = loc(1);
// if initializer is an anonymous function expression, we need to assign identifierref as it's name
if (auto *f = asAnonymousFunctionDefinition(sym(2).Expression))
f->name = stringRef(1);
+ AST::BinaryExpression *assignment = new (pool) AST::BinaryExpression(left, QSOperator::Assign, sym(2).Expression);
+ AST::PatternProperty *node = new (pool) AST::PatternProperty(name, assignment);
+ node->colonToken = loc(1);
+ sym(1).Node = node;
} break;
./