aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-03 01:18:31 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-03 01:18:31 +0000
commit63e8110bfc153acc858dbe51017fbb2395f559d7 (patch)
tree8ed3e50dc6e1e69b552e574538a3264af606ad35
parentecabd1692355ea81d120a5f34f1f36046de92167 (diff)
downloadruby-63e8110bfc153acc858dbe51017fbb2395f559d7.tar.gz
* enumerator.c (inspect_enumerator): suppress uninitialized
instance variable warnings. [ruby-dev:45449][Bug #6214] patched by no6v (Nobuhiro IMAI). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--enumerator.c6
-rw-r--r--test/ruby/test_enumerator.rb7
3 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index c50105005e..771a62fb0d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Apr 3 10:18:27 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * enumerator.c (inspect_enumerator): suppress uninitialized
+ instance variable warnings. [ruby-dev:45449][Bug #6214]
+ patched by no6v (Nobuhiro IMAI).
+
Mon Apr 2 13:25:08 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/optparse/ac.rb: autoconf-like options.
diff --git a/enumerator.c b/enumerator.c
index 3f50e9563c..ef1d9ccfbc 100644
--- a/enumerator.c
+++ b/enumerator.c
@@ -875,7 +875,7 @@ inspect_enumerator(VALUE obj, VALUE dummy, int recur)
return str;
}
- eobj = rb_iv_get(obj, "receiver");
+ eobj = rb_attr_get(obj, rb_intern("receiver"));
if (NIL_P(eobj)) {
eobj = e->obj;
}
@@ -886,7 +886,7 @@ inspect_enumerator(VALUE obj, VALUE dummy, int recur)
/* (1..100).each_cons(2) => "#<Enumerator: 1..100:each_cons(2)>" */
str = rb_sprintf("#<%s: ", cname);
rb_str_concat(str, rb_inspect(eobj));
- method = rb_iv_get(obj, "method");
+ method = rb_attr_get(obj, rb_intern("method"));
if (NIL_P(method)) {
rb_str_buf_cat2(str, ":");
rb_str_buf_cat2(str, rb_id2name(e->meth));
@@ -897,7 +897,7 @@ inspect_enumerator(VALUE obj, VALUE dummy, int recur)
rb_str_buf_cat2(str, rb_id2name(SYM2ID(method)));
}
- eargs = rb_iv_get(obj, "arguments");
+ eargs = rb_attr_get(obj, rb_intern("arguments"));
if (NIL_P(eargs)) {
eargs = e->args;
}
diff --git a/test/ruby/test_enumerator.rb b/test/ruby/test_enumerator.rb
index a1ad22160c..f26514b208 100644
--- a/test/ruby/test_enumerator.rb
+++ b/test/ruby/test_enumerator.rb
@@ -1,4 +1,5 @@
require 'test/unit'
+require_relative 'envutil'
class TestEnumerator < Test::Unit::TestCase
def setup
@@ -358,6 +359,12 @@ class TestEnumerator < Test::Unit::TestCase
e.inspect)
end
+ def test_inspect_verbose
+ bug6214 = '[ruby-dev:45449]'
+ assert_warn("", bug6214) { "".bytes.inspect }
+ assert_warn("", bug6214) { [].lazy.inspect }
+ end
+
def test_generator
# note: Enumerator::Generator is a class just for internal
g = Enumerator::Generator.new {|y| y << 1 << 2 << 3; :foo }