山本です。
rb_attr_get でも警告が出る場合があるようですが、これは意図された動作でしょうか。
Index: variable.c
===================================================================
RCS file: /src/ruby/variable.c,v
retrieving revision 1.120
diff -u -w -b -p -r1.120 variable.c
--- variable.c 4 Mar 2005 06:47:41 -0000 1.120
+++ variable.c 10 Apr 2005 07:15:26 -0000
@@ -842,9 +842,10 @@ rb_generic_ivar_table(obj)
}
static VALUE
-generic_ivar_get(obj, id)
+generic_ivar_get(obj, id, warn)
VALUE obj;
ID id;
+ int warn;
{
st_table *tbl;
VALUE val;
@@ -857,7 +858,10 @@ generic_ivar_get(obj, id)
}
}
+ if (warn && ruby_verbose) {
rb_warning("instance variable %s not initialized", rb_id2name(id));
+ }
+
return Qnil;
}
@@ -1011,7 +1015,7 @@ ivar_get(obj, id, warn)
break;
default:
if (FL_TEST(obj, FL_EXIVAR) || rb_special_const_p(obj))
- return generic_ivar_get(obj, id);
+ return generic_ivar_get(obj, id, warn);
break;
}
if (warn && ruby_verbose) {