aboutsummaryrefslogtreecommitdiffstats
path: root/parse.y
diff options
context:
space:
mode:
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y8
1 files changed, 7 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index 3af47099ff..53b4df983a 100644
--- a/parse.y
+++ b/parse.y
@@ -2900,7 +2900,13 @@ block_param0 : mlhs_item
block_param : block_param0
{
/*%%%*/
- $$ = NEW_MASGN($1, 0);
+ if ($1->nd_alen == 1) {
+ $$ = $1->nd_head;
+ rb_gc_force_recycle((VALUE)$1);
+ }
+ else {
+ $$ = NEW_MASGN($1, 0);
+ }
/*%
$$ = blockvar_new($1);
%*/