ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [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).