aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--string.c19
-rw-r--r--test/ruby/test_string.rb88
2 files changed, 36 insertions, 71 deletions
diff --git a/string.c b/string.c
index 71afc98ba5..118403b934 100644
--- a/string.c
+++ b/string.c
@@ -42,8 +42,6 @@
# define HAVE_CRYPT_R 1
#endif
-#define STRING_ENUMERATORS_WANTARRAY 0 /* next major */
-
#undef rb_str_new
#undef rb_usascii_str_new
#undef rb_utf8_str_new
@@ -7956,22 +7954,7 @@ rb_str_split(VALUE str, const char *sep0)
return rb_str_split_m(1, &sep, str);
}
-static int
-enumerator_wantarray(const char *method)
-{
- if (rb_block_given_p()) {
-#if STRING_ENUMERATORS_WANTARRAY
- rb_warn("given block not used");
-#else
- rb_warning("passing a block to String#%s is deprecated", method);
- return 0;
-#endif
- }
- return 1;
-}
-
-#define WANTARRAY(m, size) \
- (enumerator_wantarray(m) ? rb_ary_new_capa(size) : 0)
+#define WANTARRAY(m, size) (!rb_block_given_p() ? rb_ary_new_capa(size) : 0)
static inline int
enumerator_element(VALUE ary, VALUE e)
diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb
index 1fa5126931..f308cccbcd 100644
--- a/test/ruby/test_string.rb
+++ b/test/ruby/test_string.rb
@@ -878,20 +878,15 @@ CODE
assert_equal [65, 66, 67], s.bytes {}
}
else
- warning = /passing a block to String#bytes is deprecated/
- assert_warning(warning) {
- res = []
- assert_equal s.object_id, s.bytes {|x| res << x }.object_id
- assert_equal(65, res[0])
- assert_equal(66, res[1])
- assert_equal(67, res[2])
- }
- assert_warning(warning) {
- s = S("ABC")
- res = []
- assert_same s, s.bytes {|x| res << x }
- assert_equal [65, 66, 67], res
- }
+ res = []
+ assert_equal s.object_id, s.bytes {|x| res << x }.object_id
+ assert_equal(65, res[0])
+ assert_equal(66, res[1])
+ assert_equal(67, res[2])
+ s = S("ABC")
+ res = []
+ assert_same s, s.bytes {|x| res << x }
+ assert_equal [65, 66, 67], res
end
end
@@ -922,20 +917,15 @@ CODE
assert_equal [0x3042, 0x3044, 0x3046], s.codepoints {}
}
else
- warning = /passing a block to String#codepoints is deprecated/
- assert_warning(warning) {
- res = []
- assert_equal s.object_id, s.codepoints {|x| res << x }.object_id
- assert_equal(0x3042, res[0])
- assert_equal(0x3044, res[1])
- assert_equal(0x3046, res[2])
- }
- assert_warning(warning) {
- s = S("ABC")
- res = []
- assert_same s, s.codepoints {|x| res << x }
- assert_equal [65, 66, 67], res
- }
+ res = []
+ assert_equal s.object_id, s.codepoints {|x| res << x }.object_id
+ assert_equal(0x3042, res[0])
+ assert_equal(0x3044, res[1])
+ assert_equal(0x3046, res[2])
+ s = S("ABC")
+ res = []
+ assert_same s, s.codepoints {|x| res << x }
+ assert_equal [65, 66, 67], res
end
end
@@ -960,14 +950,11 @@ CODE
assert_equal ["A", "B", "C"], s.chars {}
}
else
- warning = /passing a block to String#chars is deprecated/
- assert_warning(warning) {
- res = []
- assert_equal s.object_id, s.chars {|x| res << x }.object_id
- assert_equal("A", res[0])
- assert_equal("B", res[1])
- assert_equal("C", res[2])
- }
+ res = []
+ assert_equal s.object_id, s.chars {|x| res << x }.object_id
+ assert_equal("A", res[0])
+ assert_equal("B", res[1])
+ assert_equal("C", res[2])
end
end
@@ -1032,17 +1019,14 @@ CODE
assert_equal ["A", "B", "C"], "ABC".grapheme_clusters {}
}
else
- warning = /passing a block to String#grapheme_clusters is deprecated/
- assert_warning(warning) {
- s = "ABC".b.taint
- res = []
- assert_same s, s.grapheme_clusters {|x| res << x }
- assert_equal(3, res.size)
- assert_equal("A", res[0])
- assert_equal("B", res[1])
- assert_equal("C", res[2])
- res.each {|g| assert_predicate(g, :tainted?)}
- }
+ s = "ABC".b.taint
+ res = []
+ assert_same s, s.grapheme_clusters {|x| res << x }
+ assert_equal(3, res.size)
+ assert_equal("A", res[0])
+ assert_equal("B", res[1])
+ assert_equal("C", res[2])
+ res.each {|g| assert_predicate(g, :tainted?)}
end
end
@@ -1155,12 +1139,10 @@ CODE
assert_equal ["hello\n", "world"], s.lines {}
}
else
- assert_warning(/passing a block to String#lines is deprecated/) {
- res = []
- assert_equal s.object_id, s.lines {|x| res << x }.object_id
- assert_equal(S("hello\n"), res[0])
- assert_equal(S("world"), res[1])
- }
+ res = []
+ assert_equal s.object_id, s.lines {|x| res << x }.object_id
+ assert_equal(S("hello\n"), res[0])
+ assert_equal(S("world"), res[1])
end
end