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

ruby-reference-manual:3340

From: "pypypy567 (py _)" <redmine@r...>
Date: Sat, 29 Sep 2012 17:17:28 +0900
Subject: [ruby-reference-manual:3340] [るりまプロジェクト - Bug #7054] Numeric のサブクラスの #-@


Issue #7054 has been updated by pypypy567 (py _).


> この点は -@ では self が変化しないと思ったので


正と負で絶対値の範囲が違うので境界では変化します。
(-1<<30).class  #=> Fixnum
(-(-1<<30)).class  #=> Bignum

----------------------------------------
Bug #7054: Numeric のサブクラスの #-@
https://bugs.ruby-lang.org/issues/7054#change-29780

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


http://doc.ruby-lang.org/ja/1.9.3/method/Numeric/i/=2d=40.html
http://doc.ruby-lang.org/ja/1.9.3/method/Complex/i/=2d=40.html

Bignum, Float, Fixnum 及び1.9系の Complex は #-@ を再定義していると思います。
pry でソースを表示して眺めてみましたが Bignum, Float, Fixnum は #- とは関係なく直接符号を反転してるような気がします。
Numeric#-@ から部分的にコピペする感じでパッチを書いてみました。

Complex#-@ は多分実部と虚部それぞれについて #-@ を呼んでるんだと思いますが f_negate の定義がどこに有るのかよく分かりませんでした。



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

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

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

      3315 2012-09-23 10:10 [redmine@r...        ] [るりまプロジェクト - Bug #7054][Open] Numeric のサブクラスの #-@
      3316 2012-09-23 10:32 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7054] Numeric のサブクラスの #-@
      3339 2012-09-29 09:55 ┣[sho-h@n...          ] [るりまプロジェクト - Bug #7054][Closed] Numeric のサブクラスの #-@
->    3340 2012-09-29 10:17 ┣[redmine@r...        ] [るりまプロジェクト - Bug #7054] Numeric のサブクラスの #-@
      3342 2012-09-29 12:15 ┗[sho-h@n...          ] [るりまプロジェクト - Bug #7054] Numeric のサブクラスの #-@