diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index a8bddfae50..246950a75c 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -981,7 +981,16 @@ absolute_trait_method_reference: method_body: ';' /* abstract method */ { $$ = NULL; } - | '{' inner_statement_list '}' { $$ = $2; } + | '{' inner_statement_list '}' catch_list finally_statement + { + zend_ast_list *catches = zend_ast_get_list($4); + + if (catches->children == 0 && $5 == NULL) { + $$ = $2; + } else { + $$ = zend_ast_create(ZEND_AST_TRY, $2, $4, $5); + } + } ; variable_modifiers: