From: "nobu (Nobuyoshi Nakada)" Date: 2013-02-26T21:34:12+09:00 Subject: [ruby-core:52939] [ruby-trunk - Bug #7969][Rejected] Integer binary_op Float operations doesn't use coercion Issue #7969 has been updated by nobu (Nobuyoshi Nakada). Status changed from Open to Rejected Intended behavior. coerce method is called if the peer is unknown to the receiver. ---------------------------------------- Bug #7969: Integer binary_op Float operations doesn't use coercion https://bugs.ruby-lang.org/issues/7969#change-37098 Author: prijutme4ty (Ilya Vorontsov) Status: Rejected Priority: Normal Assignee: Category: Target version: ruby -v: 1.9.3; 2.0.0 I'm trying to override #coerce method on Float. But I found that redefining Float#coerce makes no changes in behavior of code: 1 + 2.0 class Float def coerce(other) [2, 2] end end puts 1+2.0 # ==> 3.0 while result should be 4. Is it done due to perfomance considerations or it's just a bug? If it's intended is it a spec or realization specific feature? -- http://bugs.ruby-lang.org/