From: marcandre-ruby-core@... Date: 2020-12-19T18:34:28+00:00 Subject: [ruby-core:101547] [Ruby master Feature#17411] Allow expressions in pattern matching Issue #17411 has been updated by marcandre (Marc-Andre Lafortune). Backport deleted (2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN) Subject changed from Syntax error with . in pattern to Allow expressions in pattern matching Tracker changed from Bug to Feature IIUC, it is by design that you can't have expressions in pattern match; pattern match are a quite separate syntax. I agree that it is quite limiting, so I've taken the liberty to changing your issue to a feature request. It would be great to allow expressions somehow. Maybe when wrapped in () or ``? ```ruby version in {released_at: (Time.new(2010)..Time.new(2020))} # or version in {released_at: `Time.new(2010)..Time.new(2020)`} ``` ---------------------------------------- Feature #17411: Allow expressions in pattern matching https://bugs.ruby-lang.org/issues/17411#change-89329 * Author: zverok (Victor Shepelev) * Status: Open * Priority: Normal ---------------------------------------- Code: ```ruby version = {name: '2.6', released_at: Time.new(2018, 12, 25)} version in {released_at: Time.new(2010)..Time.new(2020)} # ^ syntax error, unexpected '.', expecting '}' # This works: range = Time.new(2010)..Time.new(2020) version in {released_at: ^range} #=> true ``` (Fails with all versions of the pattern matching, `in`, `=>` and `case ... in`, and on Ruby 2.7 too.) Am I missing something about the syntax?.. -- https://bugs.ruby-lang.org/ Unsubscribe: