diff options
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/zend_ast.h | 7 | ||||
-rw-r--r-- | Zend/zend_language_parser.y | 2 |
2 files changed, 7 insertions, 2 deletions
diff --git a/Zend/zend_ast.h b/Zend/zend_ast.h index 886b106228..d5396e7041 100644 --- a/Zend/zend_ast.h +++ b/Zend/zend_ast.h @@ -266,5 +266,10 @@ static zend_always_inline zend_ast *zend_ast_create_assign_op(uint32_t opcode, z static zend_always_inline zend_ast *zend_ast_create_cast(uint32_t type, zend_ast *op0) { return zend_ast_create_ex(ZEND_AST_CAST, type, op0); } - +static zend_always_inline void zend_ast_list_rtrim(zend_ast *ast) { + zend_ast_list *list = zend_ast_get_list(ast); + if (list->child[list->children - 1] == NULL) { + list->children--; + } +} #endif diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index c37bd7f20c..3d38a4c853 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -1183,7 +1183,7 @@ property_name: ; array_pair_list: - non_empty_array_pair_list { /* allow single trailing comma */ zend_ast_list *list = zend_ast_get_list($$ = $1); if (list->child[list->children - 1] == NULL) { list->children--; } } + non_empty_array_pair_list { /* allow single trailing comma */ zend_ast_list_rtrim($$ = $1); } ; possible_array_pair: |