From 44a2576f798b07139adde2d279e48fdbe71a0148 Mon Sep 17 00:00:00 2001 From: nobu Date: Sun, 1 Jan 2017 09:07:56 +0000 Subject: [PATCH] variable.c: top-level constant look-up * variable.c (rb_const_search): [EXPERIMENTAL] remove top-level constant look-up. [Feature #11547] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- NEWS | 2 ++ variable.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/NEWS b/NEWS index ca563536e7..daaacf94d9 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,8 @@ with all sufficient information, see the ChangeLog file or Redmine === Language changes +* Top-level constant look-up is removed. [Feature #11547] + === Core classes updates (outstanding ones only) === Stdlib updates (outstanding ones only) diff --git a/variable.c b/variable.c index 91482e9d0f..70a28a670f 100644 --- a/variable.c +++ b/variable.c @@ -2273,8 +2273,12 @@ rb_const_search(VALUE klass, ID id, int exclude, int recurse, int visibility) continue; } if (exclude && tmp == rb_cObject && klass != rb_cObject) { +#if 0 rb_warn("toplevel constant %"PRIsVALUE" referenced by %"PRIsVALUE"::%"PRIsVALUE"", QUOTE_ID(id), rb_class_name(klass), QUOTE_ID(id)); +#else + return Qundef; +#endif } return value; }