Actions
Bug #18246
closedsend does not work for unary ! operator when operator isn't a literal symbol
Description
1.send(:+, 1) #=> 2
1.send(:"+", 1) #=> 2
1.send(:-@) #=> -1
1.send(:"-@") #=> -1
false.send(:!@) #=> true
false.send(:"!@") #>
# undefined method `!@' for false:FalseClass (NoMethodError)
# Did you mean? !=
!~
Updated by jeremyevans0 (Jeremy Evans) about 3 years ago
- Is duplicate of Feature #10463: :~@ and :!@ are not parsed correctly added
Updated by jeremyevans0 (Jeremy Evans) about 3 years ago
- Status changed from Open to Closed
The method you are looking for is !
and not !@
. The reason false.send(:!@)
works is that :!@
is parsed as :!
, that's why the unquoted version works but the quoted version does not. This was determined to be a feature and not a bug in #10463.
Actions
Like0
Like0Like0