[ruby-core:113091] [Ruby master Bug#19548] Ambiguous and confusing syntax for alias/undef arguments
From:
"jeremyevans0 (Jeremy Evans) via ruby-core" <ruby-core@...>
Date:
2023-04-03 19:13:21 UTC
List:
ruby-core #113091
Issue #19548 has been updated by jeremyevans0 (Jeremy Evans).
Status changed from Open to Rejected
This isn't a bug, nor does it appear to be introduced by #8851 (that added support for `%s` symbol literals with `alias`/`undef`, other symbol literals were already supported). `undef` and `alias` have always accepted symbols and bare words, so `alias :* /` and `undef :*, /` work, as do `alias * /` and `undef *, /`. Not allowing bare words would break existing code.
----------------------------------------
Bug #19548: Ambiguous and confusing syntax for alias/undef arguments
https://bugs.ruby-lang.org/issues/19548#change-102625
* Author: hurricup (Alexandr Evstigneev)
* Status: Rejected
* Priority: Normal
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
This was introduced in https://bugs.ruby-lang.org/issues/8851 and looks really confusing at least because of bare `/`.
Here are 3 semantically similar methods, but feels like first two should not be valid:
```
def method1
undef :*,<<,/,[]
alias :* /
end
def method2
undef :*,
<<,
/,
[]
alias :*
/
end
def method3
undef :*
undef :<<
undef :/
undef :[]
alias :* :/
end
puts RubyVM::InstructionSequence.of(method :method1).disasm
puts RubyVM::InstructionSequence.of(method :method2).disasm
puts RubyVM::InstructionSequence.of(method :method3).disasm
```
--
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/postorius/lists/ruby-core.ml.ruby-lang.org/