🙄
[Bug #18826] Symbol#to_proc で private メソッドが呼び出されるバグ報告
[Bug #18826] Symbol#to_proc inconsistent, sometimes calls private methods
-
#tap
に&
渡しでメソッドを呼び出す場合にprivate
やprotected
メソッドを呼び出す事ができるバグ報告
class Test
protected
def referenced_columns
puts "hello"
end
end
# protected メソッドを呼び出す事ができる
Test.new.tap(&:referenced_columns)
# => hello
# Symbol#to_proc 経由でも呼び出せる
:referenced_columns.to_proc.call Test.new
# => hello
-
:foo.to_proc
はlambda{|t| t.foo}
と等価であるべきという理由から修正される流れになっている
Discussion