Actions
Feature #12079
closedLoosening the condition for refinement
Feature #12079:
Loosening the condition for refinement
Description
There are a few non-standard ways of calling a method that cannot be used when the relevant method is a refined method:
- a symbol used with
&
as a block via symbol to proc - a symbol used with
send
or__send__
For example, the following will fail:
module Foo
refine String
def baz; end
end
end
using Foo
["a", "b", "c"].map(&:baz) # => undefined method error
"a".send(:baz) # => undefined method error
I would like to propose to loosen the condition for refinement so that as long as the relevant construction (such as the use of &
to provoke Symbol#to_proc
or calling of send
or __send__
) is within the valid scope of refinement, allow the call to the relevant methods.
Actions