From: "k0kubun (Takashi Kokubun) via ruby-core" Date: 2023-12-13T17:58:00+00:00 Subject: [ruby-core:115730] [Ruby master Bug#20062] Numbered parameters are broken in Ruby 3.3-dev Issue #20062 has been updated by k0kubun (Takashi Kokubun). Assignee set to nobu (Nobuyoshi Nakada) ``` $ ./miniruby -v /tmp/test.rb ruby 3.3.0dev (2023-05-02T09:27:10Z master 31774bd565) [x86_64-linux] "a" "a" ``` ``` $ ./miniruby -v /tmp/test.rb ruby 3.3.0dev (2023-05-02T08:39:18Z master b15e88e0fc) [x86_64-linux] /tmp/test.rb: /tmp/a.rb:8: numbered parameter is already used in (SyntaxError) /tmp/test.rb:2: outer block here ``` It seems to have been broken since https://github.com/ruby/ruby/pull/7779. ---------------------------------------- Bug #20062: Numbered parameters are broken in Ruby 3.3-dev https://bugs.ruby-lang.org/issues/20062#change-105663 * Author: osyo (manga osyo) * Status: Open * Priority: Normal * Assignee: nobu (Nobuyoshi Nakada) * ruby -v: ruby 3.3.0dev (2023-12-13T13:16:11Z master f390c51b15) [x86_64-linux] * Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN ---------------------------------------- Define Numbered parameters and a method in one block and then reference Numbered parameters in another block, you will get a SyntaxError in Ruby 3.3. This is not a problem in Ruby 3.2. ```ruby 'a'.tap do p _1 def f1; end end 'a'.tap do p _1 end __END__ output: Ruby 3.2.2 => "a" "a" Ruby 3.3.0dev(2023-12-13T13:16:11Z master f390c51b15) => /path/to/test.rb: /path/to/test.rb:8: numbered parameter is already used in (SyntaxError) /path/to/test.rb:2: outer block here ``` I noticed this while checking the operation of https://bugs.ruby-lang.org/issues/18966. I haven't checked, but https://bugs.ruby-lang.org/issues/19619 may be related. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/