Actions
Bug #19548
closedAmbiguous and confusing syntax for alias/undef arguments
Description
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
Updated by jeremyevans0 (Jeremy Evans) about 2 years ago
- 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.
Actions
Like0
Like0