Project

General

Profile

Bug #10870

Updated by nobu (Nobuyoshi Nakada) almost 10 years ago

Hi, 

 When a hash literal is passed as first argument to a method, Ruby throws a syntax error. 
 Example code: 

 
 ~~~ruby 
 def foo *args 
   p args 
 end 

 foo 'Hello' 
 foo 123 
 foo ['Hello', 123] 
 foo {:hello => 123}     # Syntax Error: Unexpected =>    Expecting } 
 ~~~ 

 
 However, shifting hash literal over to second place, somehow makes it all legal. 

 
 ~~~ruby 
 foo 'Unnecessary 1st Argument', {:hello => 123}       # Error gone 
 ~~~ 

 Cheers.

Back