* [ruby-core:122315] [Ruby Bug#21378] variable pinning does not look for method arguments
@ 2025-05-27 23:31 shyouhei (Shyouhei Urabe) via ruby-core
2025-05-28 2:22 ` [ruby-core:122316] " nobu (Nobuyoshi Nakada) via ruby-core
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: shyouhei (Shyouhei Urabe) via ruby-core @ 2025-05-27 23:31 UTC (permalink / raw)
To: ruby-core; +Cc: shyouhei (Shyouhei Urabe)
Issue #21378 has been reported by shyouhei (Shyouhei Urabe).
----------------------------------------
Bug #21378: variable pinning does not look for method arguments
https://bugs.ruby-lang.org/issues/21378
* Author: shyouhei (Shyouhei Urabe)
* Status: Open
* Assignee: prism
* ruby -v: ruby 3.5.0dev (2025-01-23T15:24:35Z origin/7ed08c4fd31.. 7ed08c4fd3) +PRISM [wasm32-wasi]
* Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
Is this intentional?
```
irb(main):001> def x?(y, z) = y in { x: ^z }
<internal:kernel>:168:in 'Kernel#loop': (irb):1: syntax error found (SyntaxError)
> 1 | def x?(y, z) = y in { x: ^z }
| ^ z: no such local variable
from eval_async:132:in '<main>'
from /bundle/gems/js-2.7.1/lib/js.rb:109:in 'Kernel.eval'
from /bundle/gems/js-2.7.1/lib/js.rb:109:in 'block in JS.__eval_async_rb'
from /bundle/gems/js-2.7.1/lib/js.rb:120:in 'block in JS.__async'
```
--
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/
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ruby-core:122316] [Ruby Bug#21378] variable pinning does not look for method arguments
2025-05-27 23:31 [ruby-core:122315] [Ruby Bug#21378] variable pinning does not look for method arguments shyouhei (Shyouhei Urabe) via ruby-core
@ 2025-05-28 2:22 ` nobu (Nobuyoshi Nakada) via ruby-core
2025-05-28 7:44 ` [ruby-core:122326] " Eregon (Benoit Daloze) via ruby-core
2025-06-05 7:53 ` [ruby-core:122431] " mame (Yusuke Endoh) via ruby-core
2 siblings, 0 replies; 4+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2025-05-28 2:22 UTC (permalink / raw)
To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)
Issue #21378 has been updated by nobu (Nobuyoshi Nakada).
It is parsed as `(def x?(y, z) = y) in { x: ^z }`.
----------------------------------------
Bug #21378: variable pinning does not look for method arguments
https://bugs.ruby-lang.org/issues/21378#change-113457
* Author: shyouhei (Shyouhei Urabe)
* Status: Open
* Assignee: prism
* ruby -v: ruby 3.5.0dev (2025-01-23T15:24:35Z origin/7ed08c4fd31.. 7ed08c4fd3) +PRISM [wasm32-wasi]
* Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
Is this intentional?
```
irb(main):001> def x?(y, z) = y in { x: ^z }
<internal:kernel>:168:in 'Kernel#loop': (irb):1: syntax error found (SyntaxError)
> 1 | def x?(y, z) = y in { x: ^z }
| ^ z: no such local variable
from eval_async:132:in '<main>'
from /bundle/gems/js-2.7.1/lib/js.rb:109:in 'Kernel.eval'
from /bundle/gems/js-2.7.1/lib/js.rb:109:in 'block in JS.__eval_async_rb'
from /bundle/gems/js-2.7.1/lib/js.rb:120:in 'block in JS.__async'
```
--
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/
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ruby-core:122326] [Ruby Bug#21378] variable pinning does not look for method arguments
2025-05-27 23:31 [ruby-core:122315] [Ruby Bug#21378] variable pinning does not look for method arguments shyouhei (Shyouhei Urabe) via ruby-core
2025-05-28 2:22 ` [ruby-core:122316] " nobu (Nobuyoshi Nakada) via ruby-core
@ 2025-05-28 7:44 ` Eregon (Benoit Daloze) via ruby-core
2025-06-05 7:53 ` [ruby-core:122431] " mame (Yusuke Endoh) via ruby-core
2 siblings, 0 replies; 4+ messages in thread
From: Eregon (Benoit Daloze) via ruby-core @ 2025-05-28 7:44 UTC (permalink / raw)
To: ruby-core; +Cc: Eregon (Benoit Daloze)
Issue #21378 has been updated by Eregon (Benoit Daloze).
Assignee changed from prism to matz (Yukihiro Matsumoto)
It's the same with parse.y:
```
$ ruby -v --parser=parse.y -e 'def x?(y, z) = y in { x: ^z }'
ruby 3.5.0dev (2025-05-28T04:34:40Z master d064fd067b) [x86_64-linux]
-e:1: z: no such local variable
ruby: compile error (SyntaxError)
```
So I think we should assign matz and not prism.
I guess it's a pitfall of the weird precedence of `def =`, which has already been reported many times in various variants.
`def x?(y, z); y in { x: ^z }; end` works fine of course.
----------------------------------------
Bug #21378: variable pinning does not look for method arguments
https://bugs.ruby-lang.org/issues/21378#change-113474
* Author: shyouhei (Shyouhei Urabe)
* Status: Assigned
* Assignee: matz (Yukihiro Matsumoto)
* ruby -v: ruby 3.5.0dev (2025-01-23T15:24:35Z origin/7ed08c4fd31.. 7ed08c4fd3) +PRISM [wasm32-wasi]
* Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
Is this intentional?
```
irb(main):001> def x?(y, z) = y in { x: ^z }
<internal:kernel>:168:in 'Kernel#loop': (irb):1: syntax error found (SyntaxError)
> 1 | def x?(y, z) = y in { x: ^z }
| ^ z: no such local variable
from eval_async:132:in '<main>'
from /bundle/gems/js-2.7.1/lib/js.rb:109:in 'Kernel.eval'
from /bundle/gems/js-2.7.1/lib/js.rb:109:in 'block in JS.__eval_async_rb'
from /bundle/gems/js-2.7.1/lib/js.rb:120:in 'block in JS.__async'
```
--
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/
^ permalink raw reply [flat|nested] 4+ messages in thread
* [ruby-core:122431] [Ruby Bug#21378] variable pinning does not look for method arguments
2025-05-27 23:31 [ruby-core:122315] [Ruby Bug#21378] variable pinning does not look for method arguments shyouhei (Shyouhei Urabe) via ruby-core
2025-05-28 2:22 ` [ruby-core:122316] " nobu (Nobuyoshi Nakada) via ruby-core
2025-05-28 7:44 ` [ruby-core:122326] " Eregon (Benoit Daloze) via ruby-core
@ 2025-06-05 7:53 ` mame (Yusuke Endoh) via ruby-core
2 siblings, 0 replies; 4+ messages in thread
From: mame (Yusuke Endoh) via ruby-core @ 2025-06-05 7:53 UTC (permalink / raw)
To: ruby-core; +Cc: mame (Yusuke Endoh)
Issue #21378 has been updated by mame (Yusuke Endoh).
Status changed from Assigned to Feedback
@yui-knk Do you think this is possible to implement?
----------------------------------------
Bug #21378: variable pinning does not look for method arguments
https://bugs.ruby-lang.org/issues/21378#change-113612
* Author: shyouhei (Shyouhei Urabe)
* Status: Feedback
* Assignee: matz (Yukihiro Matsumoto)
* ruby -v: ruby 3.5.0dev (2025-01-23T15:24:35Z origin/7ed08c4fd31.. 7ed08c4fd3) +PRISM [wasm32-wasi]
* Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN
----------------------------------------
Is this intentional?
```
irb(main):001> def x?(y, z) = y in { x: ^z }
<internal:kernel>:168:in 'Kernel#loop': (irb):1: syntax error found (SyntaxError)
> 1 | def x?(y, z) = y in { x: ^z }
| ^ z: no such local variable
from eval_async:132:in '<main>'
from /bundle/gems/js-2.7.1/lib/js.rb:109:in 'Kernel.eval'
from /bundle/gems/js-2.7.1/lib/js.rb:109:in 'block in JS.__eval_async_rb'
from /bundle/gems/js-2.7.1/lib/js.rb:120:in 'block in JS.__async'
```
--
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/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-06-05 7:54 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-05-27 23:31 [ruby-core:122315] [Ruby Bug#21378] variable pinning does not look for method arguments shyouhei (Shyouhei Urabe) via ruby-core
2025-05-28 2:22 ` [ruby-core:122316] " nobu (Nobuyoshi Nakada) via ruby-core
2025-05-28 7:44 ` [ruby-core:122326] " Eregon (Benoit Daloze) via ruby-core
2025-06-05 7:53 ` [ruby-core:122431] " mame (Yusuke Endoh) via ruby-core
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).