[ruby-core:122432] [Ruby Bug#21381] Different error messages when mixing `it` and `_1` in block for Prism and parse.y
From:
"mame (Yusuke Endoh) via ruby-core" <ruby-core@...>
Date:
2025-06-05 07:58:02 UTC
List:
ruby-core #122432
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/
______________________________________________
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/lists/ruby-core.ml.ruby-lang.org/