Feature #13979

Updated by nobu (Nobuyoshi Nakada) almost 3 years ago

You can't use keywords as names for normal arguments. For example all of these give a syntax error: 

 ~~~ruby ~~~ 
 def foo(class); end 
 def foo(def); end 
 def foo(if); end 
 # ... other keywords too 

 The reason is that there's no way to refer to these names because they are keywords. 

 However, we can use these names for keyword arguments. All of these work: 

 ~~~ruby ~~~ 
 def foo(class: 1); end 
 def foo(def: 1); end 
 def foo(if: 1); end 

 But I think they should give a syntax error, because for example I can't refer to the argument "class" in the first line (same reason why the first snippet gives a syntax error).