Issue #11528 has been reported by Antha Auciello.

----------------------------------------
Bug #11528: Possible parsing bug.  Possibly just confusing.
https://bugs.ruby-lang.org/issues/11528

* Author: Antha Auciello
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 2.2.2p95
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
Not sure if this is intentional behavior but I found it confusing:

code:
~~~
def render(args)
  p args.to_a
end

print 'functionally (without parentheses): '
render "foobar".length\
        .to_s(2)\
        .split('')\
        .map do |d|
  {digit: d}
end

print 'functionally (with parentheses): '
render("foobar".length\
        .to_s(2)\
        .split('')\
        .map do |d|
         {digit: d}
       end)

print 'with an intermediate variable: '
data = "foobar".length\
        .to_s(2)\
        .split('')\
        .map do |d|
  {digit: d}
end
render data
~~~

output:
~~~
functionally (without parentheses): ["1", "1", "0"]
functionally (with parentheses): [{:digit=>"1"}, {:digit=>"1"}, {:digit=>"0"}]
with an intermediate variable: [{:digit=>"1"}, {:digit=>"1"}, {:digit=>"0"}]
~~~



-- 
https://bugs.ruby-lang.org/