ruby-changes:2301
From: ko1@a...
Date: 29 Oct 2007 18:42:33 +0900
Subject: [ruby-changes:2301] nobu - Ruby:r13792 (trunk): * parse.y (bvar): block-local variable can shadow outer variable.
nobu 2007-10-29 18:42:18 +0900 (Mon, 29 Oct 2007) New Revision: 13792 Modified files: trunk/ChangeLog trunk/parse.y Log: * parse.y (bvar): block-local variable can shadow outer variable. [ruby-core:13036] http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/parse.y?r1=13792&r2=13791 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=13792&r2=13791 Index: ChangeLog =================================================================== --- ChangeLog (revision 13791) +++ ChangeLog (revision 13792) @@ -1,3 +1,8 @@ +Mon Oct 29 18:42:17 2007 Nobuyoshi Nakada <nobu@r...> + + * parse.y (bvar): block-local variable can shadow outer variable. + [ruby-core:13036] + Mon Oct 29 17:58:16 2007 Nobuyoshi Nakada <nobu@r...> * string.c (rb_str_substr): perfomance improvement. [ruby-dev:31806] Index: parse.y =================================================================== --- parse.y (revision 13791) +++ parse.y (revision 13792) @@ -669,7 +669,7 @@ %type <node> brace_block cmd_brace_block do_block lhs none fitem %type <node> mlhs mlhs_head mlhs_basic mlhs_item mlhs_node mlhs_post mlhs_inner %type <id> fsym variable sym symbol operation operation2 operation3 -%type <id> cname fname op f_rest_arg f_block_arg opt_f_block_arg f_norm_arg +%type <id> cname fname op f_rest_arg f_block_arg opt_f_block_arg f_norm_arg f_bad_arg /*%%%*/ /*% %type <val> program reswords then do dot_or_colon @@ -3250,7 +3250,7 @@ %*/ ; -bvar : f_norm_arg +bvar : tIDENTIFIER { /*%%%*/ new_bv($1); @@ -3258,6 +3258,10 @@ $$ = $1; %*/ } + | f_bad_arg + { + $$ = 0; + } ; lambda : { @@ -4135,7 +4139,7 @@ } ; -f_norm_arg : tCONSTANT +f_bad_arg : tCONSTANT { /*%%%*/ yyerror("formal argument cannot be a constant"); @@ -4171,6 +4175,9 @@ $$ = dispatch1(param_error, $1); %*/ } + ; + +f_norm_arg : f_bad_arg | tIDENTIFIER { /*%%%*/ -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml