From 77a3863a3d4b57fdd29beebb1e56f4874607fe70 Mon Sep 17 00:00:00 2001 From: Takeshi Watanabe Date: Sat, 24 Mar 2018 16:18:44 +0900 Subject: Return nil if type differ in `String#<=>`. --- src/string.c | 2 +- test/t/string.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/string.c b/src/string.c index e8c60a660..469335bb9 100644 --- a/src/string.c +++ b/src/string.c @@ -926,7 +926,7 @@ mrb_str_cmp_m(mrb_state *mrb, mrb_value str1) else { mrb_value tmp = mrb_funcall(mrb, str2, "<=>", 1, str1); - if (!mrb_nil_p(tmp)) return mrb_nil_value(); + if (mrb_nil_p(tmp)) return mrb_nil_value(); if (!mrb_fixnum_p(tmp)) { return mrb_funcall(mrb, mrb_fixnum_value(0), "-", 1, tmp); } diff --git a/test/t/string.rb b/test/t/string.rb index a1277ce99..e91b915fe 100644 --- a/test/t/string.rb +++ b/test/t/string.rb @@ -20,6 +20,7 @@ assert('String#<=>', '15.2.10.5.1') do assert_equal 1, c assert_equal(-1, d) assert_equal 1, e + assert_nil 'a' <=> 1024 end assert('String#==', '15.2.10.5.2') do -- cgit v1.2.3