Actions
Bug #11873
closedSyntax error and parse problem when calling a method without parentheses
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin14]
Description
In the following case, syntax error rises when calling a method without parentheses.
a b{c d}, :e do end #=> syntax error(should be syntax ok)
a b(c d), :e do end #=> syntax error(should be syntax ok)
a b{c(d)}, :e do end #=> syntax ok(expected)
a b(c(d)), :e do end #=> syntax ok(expected)
If you change the literal :e
to a method name, then the do-block is passed to the wrong method
p p{p p;p(p)}, tap do puts 'Hello' end
#=> LocalJumpError(expected. do-end is passed to the first p)
p p{p(p);p p}, tap do puts 'Hello' end
#=> shows Hello(why? do-end is passed to tap)
versions are
1.8.7-p375
1.9.3-p547
2.1.1p76
2.2.0p0
2.3.0p0
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0