2022/06/17 今回の気になった bugs.ruby のチケット

[Bug #18826] Symbol#to_proc inconsistent, sometimes calls private methods

  • #tap& 渡しでメソッドを呼び出す場合に privateprotected メソッドを呼び出す事ができるバグ報告
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

[Bug #18827] __ENCODING__ is not set to the source encoding when saving script lines

p __ENCODING__
# => #<Encoding:UTF-8>
# encoding: euc-jp
p __ENCODING__
# => #<Encoding:EUC-JP>
# -Ke を渡すと #<Encoding:EUC-JP> になる
$ ruby -Ke -e 'p __ENCODING__'
#<Encoding:EUC-JP>

$ cat script_lines.rb
SCRIPT_LINES__ = {}

# -Ke を渡すと #<Encoding:EUC-JP> になるがそうでない
$ ruby -r./script_lines.rb -Ke -e 'p __ENCODING__'
#<Encoding:UTF-8>