mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* parse.y: fix rules around f_margs. "make test" passes all tests.
* bootstraptest/test_block.rb: add some tests for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									4edc1d8c9c
								
							
						
					
					
						commit
						fe898043cc
					
				
					 4 changed files with 34 additions and 15 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,9 @@
 | 
			
		|||
Wed Aug 15 13:42:15 2007  Koichi Sasada  <ko1@atdot.net>
 | 
			
		||||
 | 
			
		||||
	* parse.y: fix rules around f_margs.  "make test" passes all tests.
 | 
			
		||||
 | 
			
		||||
	* bootstraptest/test_block.rb: add some tests for above.
 | 
			
		||||
 | 
			
		||||
Wed Aug 15 13:50:10 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* hash.c (rb_hash_delete_key): delete the entry without calling block.
 | 
			
		||||
| 
						 | 
				
			
			@ -9,7 +15,7 @@ Wed Aug 15 13:50:10 2007  Nobuyoshi Nakada  <nobu@ruby-lang.org>
 | 
			
		|||
 | 
			
		||||
Wed Aug 15 13:39:25 2007  Koichi Sasada  <ko1@atdot.net>
 | 
			
		||||
 | 
			
		||||
	* process.c (proc_geteuid): fix strange cast.  [ruby-dev:31417]
 | 
			
		||||
	* process.c (proc_geteuid): fix strange conversion.  [ruby-dev:31417]
 | 
			
		||||
 | 
			
		||||
Wed Aug 15 01:05:55 2007  Tanaka Akira  <akr@fsij.org>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -336,7 +336,6 @@ assert_equal %q{[1, nil]}, %q{
 | 
			
		|||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# block parameter (shouldn't SEGV: [ruby-dev:31143])
 | 
			
		||||
assert_equal '0', %q{
 | 
			
		||||
def m()
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -364,31 +363,28 @@ m {|(v0,*v1,v2),*,v3,&v4|}
 | 
			
		|||
m {|(v0, *v1, v2)|}
 | 
			
		||||
m {|(*,v)|}
 | 
			
		||||
0
 | 
			
		||||
}
 | 
			
		||||
}, "block parameter (shouldn't SEGV: [ruby-dev:31143])"
 | 
			
		||||
 | 
			
		||||
# [ruby-dev:31147]
 | 
			
		||||
assert_equal 'nil', %q{
 | 
			
		||||
  def m
 | 
			
		||||
    yield
 | 
			
		||||
  end
 | 
			
		||||
  m{|&b| b}.inspect
 | 
			
		||||
}
 | 
			
		||||
}, '[ruby-dev:31147]'
 | 
			
		||||
 | 
			
		||||
# [ruby-dev:31160]
 | 
			
		||||
assert_equal 'nil', %q{
 | 
			
		||||
  def m()
 | 
			
		||||
    yield
 | 
			
		||||
  end
 | 
			
		||||
  m {|(v,(*))|}.inspect
 | 
			
		||||
}
 | 
			
		||||
}, '[ruby-dev:31160]'
 | 
			
		||||
 | 
			
		||||
# [ruby-dev:31153]
 | 
			
		||||
assert_equal 'nil', %q{
 | 
			
		||||
  def m()
 | 
			
		||||
    yield
 | 
			
		||||
  end
 | 
			
		||||
  m {|(*,a,b)|}.inspect
 | 
			
		||||
}
 | 
			
		||||
}, '[ruby-dev:31153]'
 | 
			
		||||
 | 
			
		||||
assert_equal 'nil', %q{
 | 
			
		||||
  def m()
 | 
			
		||||
| 
						 | 
				
			
			@ -397,3 +393,20 @@ assert_equal 'nil', %q{
 | 
			
		|||
  m {|((*))|}.inspect
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
assert_equal %q{[1, 1, [1, nil], [1, nil], [1, nil], [1, nil], [1, 1], 1, [1, nil], [1, nil], [1, nil], [1, nil], [[1, 1], [1, 1]], [1, 1], [1, 1], [1, 1], [1, nil], [1, nil], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[1, 1], [1, 1]], [[1, 1], [1, 1]], [[1, 1], [1, 1]], [1, 1], [1, 1], [[[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[[1, 1], [1, 1]], [[1, 1], [1, 1]]], [[1, 1], [1, 1]], [[1, 1], [1, 1]]]}, %q{
 | 
			
		||||
def m(ary = [])
 | 
			
		||||
  yield(ary)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
$ans = []
 | 
			
		||||
o = 1
 | 
			
		||||
5.times{
 | 
			
		||||
  v,(*) = o; $ans << o
 | 
			
		||||
  m(o){|(v,(*))| $ans << v}
 | 
			
		||||
  ((x, y)) = o; $ans << [x, y]
 | 
			
		||||
  m(o){|((x, y))| $ans << [x, y]}
 | 
			
		||||
  (((x, y))) = o; $ans << [x, y]
 | 
			
		||||
  m(o){|(((x, y)))| $ans << [x, y]}
 | 
			
		||||
  o = [o, o]
 | 
			
		||||
}; $ans
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								debug.c
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								debug.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -33,7 +33,7 @@ ruby_debug_print_value(int level, int debug_level, const char *header, VALUE obj
 | 
			
		|||
	VALUE str;
 | 
			
		||||
	str = rb_inspect(obj);
 | 
			
		||||
	fprintf(stderr, "DBG> %s: %s\n", header,
 | 
			
		||||
	       obj == -1 ? "" : StringValueCStr(str));
 | 
			
		||||
		obj == -1 ? "" : StringValueCStr(str));
 | 
			
		||||
	fflush(stderr);
 | 
			
		||||
    }
 | 
			
		||||
    return obj;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								parse.y
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								parse.y
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1389,7 +1389,7 @@ mlhs_basic	: mlhs_head
 | 
			
		|||
		| mlhs_head tSTAR ',' mlhs_post
 | 
			
		||||
		    {
 | 
			
		||||
		    /*%%%*/
 | 
			
		||||
			$$ = NEW_MASGN($1, NEW_POSTARG(-1,$4));
 | 
			
		||||
			$$ = NEW_MASGN($1, NEW_POSTARG(-1, $4));
 | 
			
		||||
		    /*%
 | 
			
		||||
			$$ = mlhs_add_star($1, Qnil);
 | 
			
		||||
		    %*/
 | 
			
		||||
| 
						 | 
				
			
			@ -1421,7 +1421,7 @@ mlhs_basic	: mlhs_head
 | 
			
		|||
		| tSTAR ',' mlhs_post
 | 
			
		||||
		    {
 | 
			
		||||
		    /*%%%*/
 | 
			
		||||
			$$ = NEW_MASGN(0, NEW_POSTARG(-1,$3));
 | 
			
		||||
			$$ = NEW_MASGN(0, NEW_POSTARG(-1, $3));
 | 
			
		||||
		    /*%
 | 
			
		||||
			$$ = mlhs_add_star(mlhs_new(), Qnil);
 | 
			
		||||
		    %*/
 | 
			
		||||
| 
						 | 
				
			
			@ -3001,7 +3001,7 @@ for_var		: lhs
 | 
			
		|||
f_marg		: f_norm_arg
 | 
			
		||||
		    {
 | 
			
		||||
		    /*%%%*/
 | 
			
		||||
			$$ = NEW_LIST(assignable($1, 0));
 | 
			
		||||
			$$ = assignable($1, 0); //NEW_LIST(assignable($1, 0));
 | 
			
		||||
		    /*%
 | 
			
		||||
			$$ = dispatch1(mlhs_paren, $1);
 | 
			
		||||
		    %*/
 | 
			
		||||
| 
						 | 
				
			
			@ -3009,7 +3009,7 @@ f_marg		: f_norm_arg
 | 
			
		|||
		| tLPAREN f_margs rparen
 | 
			
		||||
		    {
 | 
			
		||||
		    /*%%%*/
 | 
			
		||||
			$$ = NEW_MASGN(NEW_LIST($2), 0);
 | 
			
		||||
			$$ = $2; //NEW_LIST($2);
 | 
			
		||||
		    /*%
 | 
			
		||||
			$$ = dispatch1(mlhs_paren, $2);
 | 
			
		||||
		    %*/
 | 
			
		||||
| 
						 | 
				
			
			@ -3019,7 +3019,7 @@ f_marg		: f_norm_arg
 | 
			
		|||
f_marg_list	: f_marg
 | 
			
		||||
		    {
 | 
			
		||||
		    /*%%%*/
 | 
			
		||||
			$$ = $1;
 | 
			
		||||
			$$ = NEW_LIST($1);
 | 
			
		||||
		    /*%
 | 
			
		||||
			$$ = mlhs_add(mlhs_new(), $1);
 | 
			
		||||
		    %*/
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue