From bfaffbf00a6124ff3214cc1593210651887fb64b Mon Sep 17 00:00:00 2001 From: matz Date: Fri, 24 Nov 2006 01:23:50 +0000 Subject: * eval.c (rb_mod_define_method): set implicit visibility only when it's called for the target class (ruby_cbase). git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_8@11304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 6b9a674a1..2b6fda37f 100644 --- a/eval.c +++ b/eval.c @@ -9552,14 +9552,14 @@ rb_mod_define_method(argc, argv, mod) rb_raise(rb_eTypeError, "wrong argument type (expected Proc/Method)"); } - if (SCOPE_TEST(SCOPE_PRIVATE)) { - noex = NOEX_PRIVATE; - } - else if (SCOPE_TEST(SCOPE_PROTECTED)) { - noex = NOEX_PROTECTED; - } - else { - noex = NOEX_PUBLIC; + noex = NOEX_PUBLIC; + if (ruby_cbase == mod) { + if (SCOPE_TEST(SCOPE_PRIVATE)) { + noex = NOEX_PRIVATE; + } + else if (SCOPE_TEST(SCOPE_PROTECTED)) { + noex = NOEX_PROTECTED; + } } rb_add_method(mod, id, node, noex); return body; -- cgit