Bug #9376
Updated by nobu (Nobuyoshi Nakada) almost 11 years ago
=begin Since method (({def})) def returns the symbol in 2.1, it opens the door for a decorator pattern in which the method def is the argument to a method. This currently works, unless the method happens to call another method and pass it a (({do/end})) do/end block. However, using (({{}})) {} instead causes no syntax error. Here is the code to reproduce: ``` def foo(meth); end x = Object.new foo def bar(arg) x.tap { } #=> (no problem here) x.tap do end #=> syntax error, unexpected keyword_do_block, expecting keyword_end (SyntaxError) end =end ```