foo(m a { } do end)
            ^~ unexpected 'do'; expected a `)` to close the arguments
            ^~ unexpected 'do', expecting end-of-input
            ^~ unexpected 'do', ignoring it
               ^~~ unexpected 'end', ignoring it
                  ^ unexpected ')', ignoring it

foo(m a.b { } do end)
              ^~ unexpected 'do'; expected a `)` to close the arguments
              ^~ unexpected 'do', expecting end-of-input
              ^~ unexpected 'do', ignoring it
                 ^~~ unexpected 'end', ignoring it
                    ^ unexpected ')', ignoring it

