Bug #13898
closed
Added by tt (Troels Thomsen) about 7 years ago.
Updated about 7 years ago.
Description
Upgrading to Ruby 2.4.2p198 from Ruby 2.4.1p111 introduces the following regression:
irb(main):001:0> def let(x, &b); end
=> :let
irb(main):002:0> let :foo { nil }
SyntaxError: (irb):2: syntax error, unexpected '{', expecting end-of-input
let :foo { nil }
^
from /home/tt/.rubies/ruby-2.4.2/bin/irb:11:in `<main>'
let(:foo) { nil }
and let :foo do nil end
(and let(:foo) do nil end
) works.
- Status changed from Open to Rejected
Just got this error too after an update from 2.4.1 to 2.4.2.
Is this really the correct way to break the syntax in minor updates? I mean, going from 2.4 to 2.5 I might expect some syntax changes, but 2.4.1 to 2.4.2 should not break the syntax IMO (even if the behavior was not intended in the first place), even thought ruby does not follow semver.
At least an entry should be added to the changelog and/or caveats section.
- Has duplicate Bug #13939: Ruby 2.4.2 has issue supporting Seattle.rb style for define_method added
- Has duplicate Bug #13976: SyntaxError if curly brace block follows args without parentheses, introduced in 2.4.2 added
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0