#112: NSNumber should behave consistently regardless of how it is accessed -------------------------------------+-------------------------------------- Reporter: jordan.breeding@mac.com | Owner: lsansonetti@apple.com Type: defect | Status: new Priority: blocker | Milestone: MacRuby 0.4 Component: MacRuby | Resolution: Keywords: | -------------------------------------+-------------------------------------- Changes (by lsansonetti@apple.com): * milestone: => MacRuby 0.4 Comment: The problem here is that NSNumber does not implement the Numeric interface yet, because it's defined on Numeric itself. {{{ $ macirb
1.class.ancestors => [Fixnum, Precision, Integer, Precision, Numeric, Comparable, NSNumber, NSValue, NSObject, Kernel] NSNumber.numberWithInt(42).class.ancestors => [NSCFNumber, NSNumber, NSValue, NSObject, Kernel] NSNumber.numberWithInt(42) + 1 NoMethodError: undefined method `+' for #<NSCFNumber:0x13a49b0> from (irb):3 from /usr/local/bin/macirb:12:in `<main>' }}}
Ideally we should reimplement Numeric on top of NSNumber as we did for String/Array/Hash and change MacRuby to always emit NSNumbers (or subclasses) for fixnums instead of special constants. -- Ticket URL: <http://www.macruby.org/trac/ticket/112#comment:1> MacRuby <http://macruby.org/>