aboutsummaryrefslogtreecommitdiffstats
path: root/variable.c
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2020-09-02 13:58:29 -0400
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-09-03 16:49:45 +0900
commit7b9ef66747c91823bf22346ddda7b48329f29fb8 (patch)
treeb232ba43e73f75e50b993902ae3a2adcf7d42018 /variable.c
parent50b18e81295ad2d45975e4d8ea1e0c7e85140b97 (diff)
downloadruby-7b9ef66747c91823bf22346ddda7b48329f29fb8.tar.gz
Don't call to_s in const_set
Follow up for 5e16857315bf55307c5fc887ca6f03bfa0630a93. Calling a method in the middle of const_set adds a way that it would fail. It also makes it inconsistent with declaring a constant using `::`, which doesn't call `to_s`.
Diffstat (limited to 'variable.c')
-rw-r--r--variable.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/variable.c b/variable.c
index 3c3b689889..5dd286bb4c 100644
--- a/variable.c
+++ b/variable.c
@@ -2855,7 +2855,8 @@ rb_const_set(VALUE klass, ID id, VALUE val)
int parental_path_permanent;
VALUE parental_path = classname(klass, &parental_path_permanent);
if (NIL_P(parental_path)) {
- parental_path = rb_funcall(klass, rb_intern("to_s"), 0);
+ int throwaway;
+ parental_path = rb_tmp_class_path(klass, &throwaway, make_temporary_path);
}
if (parental_path_permanent && !val_path_permanent) {
set_namespace_path(val, build_const_path(parental_path, id));