summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2016-11-17 18:02:10 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2016-11-17 18:02:10 +0900
commit57900d809f7dac7f450eadd475ad225a6cca39cb (patch)
tree8392373df56431e05bbe9c8f420865828b87d902
parent92be276d761ac7e2e7bd1ebe14625d9443b23eb3 (diff)
downloadmruby-57900d809f7dac7f450eadd475ad225a6cca39cb.tar.gz
mruby-57900d809f7dac7f450eadd475ad225a6cca39cb.zip
String#include? does not take integers
-rw-r--r--src/string.c18
-rw-r--r--test/t/string.rb2
2 files changed, 4 insertions, 16 deletions
diff --git a/src/string.c b/src/string.c
index 8c46da2bf..f8ab9478f 100644
--- a/src/string.c
+++ b/src/string.c
@@ -1530,22 +1530,12 @@ mrb_str_hash_m(mrb_state *mrb, mrb_value self)
static mrb_value
mrb_str_include(mrb_state *mrb, mrb_value self)
{
- mrb_int i;
mrb_value str2;
- mrb_bool include_p;
-
- mrb_get_args(mrb, "o", &str2);
- if (mrb_fixnum_p(str2)) {
- include_p = (memchr(RSTRING_PTR(self), mrb_fixnum(str2), RSTRING_LEN(self)) != NULL);
- }
- else {
- str2 = mrb_str_to_str(mrb, str2);
- i = str_index(mrb, self, str2, 0);
-
- include_p = (i != -1);
- }
- return mrb_bool_value(include_p);
+ mrb_get_args(mrb, "S", &str2);
+ if (str_index(mrb, self, str2, 0) < 0)
+ return mrb_bool_value(FALSE);
+ return mrb_bool_value(TRUE);
}
/* 15.2.10.5.22 */
diff --git a/test/t/string.rb b/test/t/string.rb
index fbaada451..e67389b5c 100644
--- a/test/t/string.rb
+++ b/test/t/string.rb
@@ -381,8 +381,6 @@ assert('String#hash', '15.2.10.5.20') do
end
assert('String#include?', '15.2.10.5.21') do
- assert_true 'abc'.include?(97)
- assert_false 'abc'.include?(100)
assert_true 'abc'.include?('a')
assert_false 'abc'.include?('d')
end