Project

General

Profile

Actions

Feature #21572

open

Make illegal variable in alternation pattern a syntax error

Added by kddnewton (Kevin Newton) about 15 hours ago.

Status:
Open
Assignee:
-
Target version:
-
[ruby-core:123241]

Description

Currently when you have an illegal variable in an alternation pattern, you get a compile error, but no syntax error.

case foo
in {a: } | Array
  "matched: #{a}"
end

yields

$ ruby -cv test.rb
ruby 3.5.0dev (2025-04-10T10:21:51Z master 756479324f) +PRISM [x86_64-linux]
Syntax OK

but

$ ruby test.rb
test.rb:2: illegal variable in alternative pattern (a)
test.rb: compile error (SyntaxError)

Looking at the compiler, since illegal jumps (like break, next, etc.) are now syntax errors, the only other actual compiler errors are related to builtins. I think this should be a proper syntax error, so that editors and other tools can report on it and users can find it in development sooner.

No data to display

Actions

Also available in: Atom PDF

Like0