summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-09-24 18:43:32 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-09-24 18:43:32 +0000
commit73220a234e978fe92b20287a1d4cd1c540ffe103 (patch)
tree7c2e73c685f8a65cb7a3bb5074cf0f3dba269698
parent48ddab1e7d3338a6827b2311099e1a28dd5ab8f1 (diff)
* enum.c (slice_before_i): use rb_attr_get to surpress wrong warning
for internal instance variable slicebefore_initial_state. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--enum.c2
-rw-r--r--test/ruby/test_enum.rb16
3 files changed, 22 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index deacdb1861..b7fe3df031 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Sep 25 03:43:03 2011 NARUSE, Yui <naruse@ruby-lang.org>
+
+ * enum.c (slice_before_i): use rb_attr_get to surpress wrong warning
+ for internal instance variable slicebefore_initial_state.
+
Fri Sep 23 14:20:14 2011 Martin Bosslet <Martin.Bosslet@googlemail.com>
* ext/openssl/ossl_asn1.c: remove unused variable.
diff --git a/enum.c b/enum.c
index de954c938f..b9d34d8c03 100644
--- a/enum.c
+++ b/enum.c
@@ -2469,7 +2469,7 @@ slicebefore_i(VALUE yielder, VALUE enumerator, int argc, VALUE *argv)
enumerable = rb_ivar_get(enumerator, rb_intern("slicebefore_enumerable"));
arg.sep_pred = rb_attr_get(enumerator, rb_intern("slicebefore_sep_pred"));
arg.sep_pat = NIL_P(arg.sep_pred) ? rb_ivar_get(enumerator, rb_intern("slicebefore_sep_pat")) : Qnil;
- arg.state = rb_ivar_get(enumerator, rb_intern("slicebefore_initial_state"));
+ arg.state = rb_attr_get(enumerator, rb_intern("slicebefore_initial_state"));
arg.prev_elts = Qnil;
arg.yielder = yielder;
diff --git a/test/ruby/test_enum.rb b/test/ruby/test_enum.rb
index d5353f680c..c8f2fad546 100644
--- a/test/ruby/test_enum.rb
+++ b/test/ruby/test_enum.rb
@@ -1,5 +1,6 @@
require 'test/unit'
require 'continuation'
+require 'stringio'
class TestEnumerable < Test::Unit::TestCase
def setup
@@ -22,6 +23,20 @@ class TestEnumerable < Test::Unit::TestCase
$VERBOSE = @verbose
end
+ def assert_not_warn
+ begin
+ org_stderr = $stderr
+ v = $VERBOSE
+ $stderr = StringIO.new(warn = '')
+ $VERBOSE = true
+ yield
+ ensure
+ $stderr = org_stderr
+ $VERBOSE = v
+ end
+ assert_equal("", warn)
+ end
+
def test_grep
assert_equal([1, 2, 1, 2], @obj.grep(1..2))
a = []
@@ -383,6 +398,7 @@ class TestEnumerable < Test::Unit::TestCase
ss = %w[abc defg h ijk l mno pqr st u vw xy z]
assert_equal([%w[abc defg h], %w[ijk l], %w[mno], %w[pqr st u vw xy z]],
ss.slice_before(/\A...\z/).to_a)
+ assert_not_warn{ss.slice_before(/\A...\z/).to_a}
end
end