[ruby-core:122333] [Ruby Bug#21381] Different error messages when mixing `it` and `_1` in block for Prism and parse.y

Issue #21381 has been reported by herwin (Herwin W). ---------------------------------------- Bug #21381: Different error messages when mixing `it` and `_1` in block for Prism and parse.y https://bugs.ruby-lang.org/issues/21381 * Author: herwin (Herwin W) * Status: Open * ruby -v: ruby 3.4.4 (2025-05-14 revision a38531fd3f) +PRISM [x86_64-linux] and ruby 3.4.4 (2025-05-14 revision a38531fd3f) [x86_64-linux] * Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- ``` $ ruby -v -e 'proc { it + _1 }' ruby 3.4.4 (2025-05-14 revision a38531fd3f) +PRISM [x86_64-linux] -e: -e:1: syntax error found (SyntaxError)
1 | proc { it + _1 } | ^~ numbered parameters are not allowed when 'it' is already used
$ ruby -v --parser=parse.y -e 'proc { it + _1 }' ruby 3.4.4 (2025-05-14 revision a38531fd3f) [x86_64-linux] -e:1: 'it' is already used in -e:1: current block here proc { it + _1 } ruby: compile error (SyntaxError) ``` and the other way around: ``` $ ruby -v -e 'proc { _1 + it}' ruby 3.4.4 (2025-05-14 revision a38531fd3f) +PRISM [x86_64-linux] -e: -e:1: syntax error found (SyntaxError)
1 | proc { _1 + it} | ^~ `it` is not allowed when a numbered parameter is already used
$ ruby -v --parser=parse.y -e 'proc { _1 + it}' ruby 3.4.4 (2025-05-14 revision a38531fd3f) [x86_64-linux] -e:1: numbered parameter is already used in -e:1: current block here proc { _1 + it} ruby: compile error (SyntaxError) ``` It would expect the relevant part of messages to match. To be clear, I would consider this the relevant parts: ``` numbered parameters are not allowed when 'it' is already used 'it' is already used in ``` and ``` `it` is not allowed when a numbered parameter is already used numbered parameter is already used ``` -- https://bugs.ruby-lang.org/

Issue #21381 has been updated by herwin (Herwin W). (very minor issue, I wouldn't mind too much if it would not be fixed) ---------------------------------------- Bug #21381: Different error messages when mixing `it` and `_1` in block for Prism and parse.y https://bugs.ruby-lang.org/issues/21381#change-113482 * Author: herwin (Herwin W) * Status: Open * ruby -v: ruby 3.4.4 (2025-05-14 revision a38531fd3f) +PRISM [x86_64-linux] and ruby 3.4.4 (2025-05-14 revision a38531fd3f) [x86_64-linux] * Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- ``` $ ruby -v -e 'proc { it + _1 }' ruby 3.4.4 (2025-05-14 revision a38531fd3f) +PRISM [x86_64-linux] -e: -e:1: syntax error found (SyntaxError)
1 | proc { it + _1 } | ^~ numbered parameters are not allowed when 'it' is already used
$ ruby -v --parser=parse.y -e 'proc { it + _1 }' ruby 3.4.4 (2025-05-14 revision a38531fd3f) [x86_64-linux] -e:1: 'it' is already used in -e:1: current block here proc { it + _1 } ruby: compile error (SyntaxError) ``` and the other way around: ``` $ ruby -v -e 'proc { _1 + it}' ruby 3.4.4 (2025-05-14 revision a38531fd3f) +PRISM [x86_64-linux] -e: -e:1: syntax error found (SyntaxError)
1 | proc { _1 + it} | ^~ `it` is not allowed when a numbered parameter is already used
$ ruby -v --parser=parse.y -e 'proc { _1 + it}' ruby 3.4.4 (2025-05-14 revision a38531fd3f) [x86_64-linux] -e:1: numbered parameter is already used in -e:1: current block here proc { _1 + it} ruby: compile error (SyntaxError) ``` It would expect the relevant part of messages to match. To be clear, I would consider this the relevant parts: ``` numbered parameters are not allowed when 'it' is already used 'it' is already used in ``` and ``` `it` is not allowed when a numbered parameter is already used numbered parameter is already used ``` -- https://bugs.ruby-lang.org/

Issue #21381 has been updated by mame (Yusuke Endoh). Assignee set to nobu (Nobuyoshi Nakada) ---------------------------------------- Bug #21381: Different error messages when mixing `it` and `_1` in block for Prism and parse.y https://bugs.ruby-lang.org/issues/21381#change-113613 * Author: herwin (Herwin W) * Status: Open * Assignee: nobu (Nobuyoshi Nakada) * ruby -v: ruby 3.4.4 (2025-05-14 revision a38531fd3f) +PRISM [x86_64-linux] and ruby 3.4.4 (2025-05-14 revision a38531fd3f) [x86_64-linux] * Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- ``` $ ruby -v -e 'proc { it + _1 }' ruby 3.4.4 (2025-05-14 revision a38531fd3f) +PRISM [x86_64-linux] -e: -e:1: syntax error found (SyntaxError)
1 | proc { it + _1 } | ^~ numbered parameters are not allowed when 'it' is already used
$ ruby -v --parser=parse.y -e 'proc { it + _1 }' ruby 3.4.4 (2025-05-14 revision a38531fd3f) [x86_64-linux] -e:1: 'it' is already used in -e:1: current block here proc { it + _1 } ruby: compile error (SyntaxError) ``` and the other way around: ``` $ ruby -v -e 'proc { _1 + it}' ruby 3.4.4 (2025-05-14 revision a38531fd3f) +PRISM [x86_64-linux] -e: -e:1: syntax error found (SyntaxError)
1 | proc { _1 + it} | ^~ `it` is not allowed when a numbered parameter is already used
$ ruby -v --parser=parse.y -e 'proc { _1 + it}' ruby 3.4.4 (2025-05-14 revision a38531fd3f) [x86_64-linux] -e:1: numbered parameter is already used in -e:1: current block here proc { _1 + it} ruby: compile error (SyntaxError) ``` It would expect the relevant part of messages to match. To be clear, I would consider this the relevant parts: ``` numbered parameters are not allowed when 'it' is already used 'it' is already used in ``` and ``` `it` is not allowed when a numbered parameter is already used numbered parameter is already used ``` -- https://bugs.ruby-lang.org/
participants (2)
-
herwin (Herwin W)
-
mame (Yusuke Endoh)