Issue #19918 has been updated by Eregon (Benoit Daloze).
mame (Yusuke Endoh) wrote in #note-1:
Assuming this is intentionally valid, I wonder if
`a[&b] = c` should evaluate `b` before `c`.
That's the kind of complications which I think illustrates the Ruby syntax
shouldn't support such edge cases.
It does not seem nearly useful or used enough to warrant those complications.
Literally I have never seen any code using `[]=` with a block.
If a block is useful the method should not be named with `[]=` but something clearer so
it's easy to pass a block without such contortions.
----------------------------------------
Bug #19918: Should `a[&b]=c` be syntax valid?
https://bugs.ruby-lang.org/issues/19918#change-104869
* Author: tompng (tomoya ishida)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.3.0dev (2023-10-11T04:46:58Z master 40ab7b8c24) [x86_64-linux]
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
These codes are syntax valid now. Prism parses it as syntax error.
~~~ruby
a[&b]=c
a[&b]+=c
a[&b]&&=c
a[&b]||=c
~~~
Is this syntax intentional or should be error?
Issue of Prism
https://github.com/ruby/prism/issues/1636
It's added in test_parse.rb
https://github.com/ruby/ruby/blob/40ab7b8c244de20007cb45846f41de3a01f7ea0c/…
--
https://bugs.ruby-lang.org/