diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-05-14 21:41:27 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-10-12 16:21:19 +0900 |
| commit | ce7508e0d52e364358294fb3eb3414763d03516c (patch) | |
| tree | 4c3125a4aed9d56673f883394b77523b4d239e1b | |
| parent | c29212cf44e728a47d306bf9a25a9d8d8317a4f9 (diff) | |
| download | mruby-ce7508e0d52e364358294fb3eb3414763d03516c.tar.gz mruby-ce7508e0d52e364358294fb3eb3414763d03516c.zip | |
Allow `rescue` modifier in endless method definitions.
| -rw-r--r-- | mrbgems/mruby-compiler/core/parse.y | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y index 83b9ad422..2ff66be60 100644 --- a/mrbgems/mruby-compiler/core/parse.y +++ b/mrbgems/mruby-compiler/core/parse.y @@ -2319,18 +2319,39 @@ arg : lhs '=' arg_rhs | defn_head f_arglist_paren '=' arg { $$ = $1; + void_expr_error(p, $4); defn_setup(p, $$, $2, $4); nvars_unnest(p); p->in_def--; } + | defn_head f_arglist_paren '=' arg modifier_rescue arg + { + $$ = $1; + void_expr_error(p, $4); + void_expr_error(p, $6); + defn_setup(p, $$, $2, new_mod_rescue(p, $4, $6)); + nvars_unnest(p); + p->in_def--; + } | defs_head f_arglist_paren '=' arg { $$ = $1; + void_expr_error(p, $4); defs_setup(p, $$, $2, $4); nvars_unnest(p); p->in_def--; p->in_single--; } + | defs_head f_arglist_paren '=' arg modifier_rescue arg + { + $$ = $1; + void_expr_error(p, $4); + void_expr_error(p, $6); + defs_setup(p, $$, $2, new_mod_rescue(p, $4, $6)); + nvars_unnest(p); + p->in_def--; + p->in_single--; + } | primary { $$ = $1; |
