[前][次][番号順一覧][スレッド一覧]

ruby-reference-manual:3274

From: "ohai (Ippei Obayashi)" <redmine@r...>
Date: Tue, 11 Sep 2012 01:39:12 +0900
Subject: [ruby-reference-manual:3274] [るりまプロジェクト - Bug #6905] UnboundMethod#bind の説明が古い


Issue #6905 has been updated by ohai (Ippei Obayashi).


r5378 で修正しました。1.8.4は古いですし私の手元に確認用の環境がないので特に記述しない方針で。
1.8ではモジュールの場合super以外でも怪しい挙動があるのでそのように説明することにします。
 
----------------------------------------
Bug #6905: UnboundMethod#bind の説明が古い
https://bugs.ruby-lang.org/issues/6905#change-29233

Author: pypypy567 (py _)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
reporter: 
ruby_version: 


http://doc.ruby-lang.org/ja/1.9.3/method/UnboundMethod/i/bind.html
UnboundMethod#bind の説明は全体的に見直しが必要なようです。
bind 出来るための制限が緩くなっています。

ソースは読めないのでいろいろ試してみた結果ですが
・現バージョンのコメントにも書いてあるように作成元のクラスのサブクラスのインスタンスにも bind 出来るようになった
・「同名の特異メソッドが定義されているとダメ」という制限は(多分 1.8.1 から)無くなった
・そのケースで 1.8.4 だけ inspect がおかしい
・inspect の表記が若干変わってる場合がある


あと1.8系は super 絡みでバグがあるようです。

class A
  def foo
    puts 'A'
  end
end
module B
  def foo
    print 'B '
    super
  end
end
class C < A
  include B
end
C.new.foo
B.instance_method(:foo).bind(C.new).call  # 1.8.2 あたりからおかしい



-- 
http://bugs.ruby-lang.org/

--
ML: ruby-reference-manual@m...
Info: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      3189 2012-08-22 10:46 [redmine@r...        ] [るりまプロジェクト - Bug #6905][Open] UnboundMethod#bind の説明が古い
->    3274 2012-09-10 18:39 ┗[redmine@r...        ] [るりまプロジェクト - Bug #6905] UnboundMethod#bind の説明が古い