for (i = 0; i < list->children; ++i) {
zend_ast *elem_ast = list->child[i];
zend_ast *value_ast = elem_ast->child[0];
- zend_ast *key_ast = elem_ast->child[1];
+ zend_ast *key_ast;
zval *value = zend_ast_get_zval(value_ast);
if (elem_ast->kind == ZEND_AST_UNPACK) {
Z_TRY_ADDREF_P(value);
+ key_ast = elem_ast->child[1];
if (key_ast) {
zval *key = zend_ast_get_zval(key_ast);
switch (Z_TYPE_P(key)) {
}
value_ast = elem_ast->child[0];
- key_ast = elem_ast->child[1];
- by_ref = elem_ast->attr;
if (elem_ast->kind == ZEND_AST_UNPACK) {
zend_compile_expr(&value_node, value_ast);
continue;
}
+ key_ast = elem_ast->child[1];
+ by_ref = elem_ast->attr;
+
if (key_ast) {
zend_compile_expr(&key_node, key_ast);
zend_handle_numeric_op(&key_node);