From: shuujii@... Date: 2019-06-11T14:09:12+00:00 Subject: [ruby-core:93044] [Ruby trunk Bug#15857] <=> の右辺が <=> を実装していない場合の振る舞い Issue #15857 has been updated by shuujii (Shuji KOBAYASHI). @jeremyevans0 Thank you for your comment. About `Complex`, I agree with most of v2 patch, but I have some comments. - Should methods from `Comparable` that are currently disabled be enabled? - `rb_undef_method(rb_cComplex, "<=>")` is unneeded. - `idCmp` can be used instead of `id_spaceship`. About other than `Complex`, `<=>` of some classes, such as `String` and `Time`, will fail if LHS does not implement `<=>`. It's better to return `nil` in this case too, because whether it's comparable or not and whether LHS implements `<=>` or not is essentially irrelevant, I think. ---------------------------------------- Bug #15857: <=> ������������ <=> ��������������������������������������������� https://bugs.ruby-lang.org/issues/15857#change-78437 * Author: shuujii (Shuji KOBAYASHI) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux] * Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN ---------------------------------------- `<=>` ������������ `<=>` ���������������������������������`nil` ��������������������������������������������������������������������������������������������������������������������������������������������� ```ruby 0 <=> 0i #=> NoMethodError (undefined method `<=>' for (0+0i):Complex) 0 <=> BasicObject.new #=> nil :a <=> 0i #=> nil "a" <=> 0i #=> NoMethodError (undefined method `<=>' for (0+0i):Complex) ``` ���������`0 <=> 0i` ������������������`0 == 0i` ��� `true` ��������������������������������������������������������������������������������������������������� ---Files-------------------------------- complex-real-spaceship.patch (8.75 KB) complex-real-spaceship-v2.patch (8.08 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: