Issue #13898 has been updated by markus_d (Markus Doits).


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.

----------------------------------------
Bug #13898: Block parsing regression
https://bugs.ruby-lang.org/issues/13898#change-66703

* Author: tt (Troels Thomsen)
* Status: Rejected
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
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>'




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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>