* [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
` (3 more replies)
0 siblings, 4 replies; 5+ 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] 5+ 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
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ 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] 5+ 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
2025-09-13 1:53 ` [ruby-core:123238] " yui-knk (Kaneko Yuichiro) via ruby-core
3 siblings, 0 replies; 5+ 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] 5+ 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
2025-09-13 1:53 ` [ruby-core:123238] " yui-knk (Kaneko Yuichiro) via ruby-core
3 siblings, 0 replies; 5+ 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] 5+ messages in thread
* [ruby-core:123238] [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
` (2 preceding siblings ...)
2025-06-05 7:53 ` [ruby-core:122431] " mame (Yusuke Endoh) via ruby-core
@ 2025-09-13 1:53 ` yui-knk (Kaneko Yuichiro) via ruby-core
3 siblings, 0 replies; 5+ messages in thread
From: yui-knk (Kaneko Yuichiro) via ruby-core @ 2025-09-13 1:53 UTC (permalink / raw)
To: ruby-core; +Cc: yui-knk (Kaneko Yuichiro)
Issue #21378 has been updated by yui-knk (Kaneko Yuichiro).
> Do you think this is possible to implement?
This is possible to implement like [this](https://github.com/yui-knk/ruby/compare/f9bffff3d4b45d4c6fed42f13d556c520f3cfd67...ecde4c8227ac06ee56ff75cfcbf75102083685a6).
Let's discuss the detail in #21097.
----------------------------------------
Bug #21378: variable pinning does not look for method arguments
https://bugs.ruby-lang.org/issues/21378#change-114569
* 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] 5+ messages in thread
end of thread, other threads:[~2025-09-13 1:54 UTC | newest]
Thread overview: 5+ 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
2025-09-13 1:53 ` [ruby-core:123238] " yui-knk (Kaneko Yuichiro) 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).