rb_method_name_error: do not goto into a branch

I'm not necessarily against every goto in general, but jumping into a
branch is definitely a bad idea.  Better refactor.
This commit is contained in:
卜部昌平 2020-06-16 12:00:49 +09:00
parent 2390a8bd2e
commit 8b9b51bb3b
Notes: git 2020-06-29 11:06:55 +09:00

6
proc.c
View File

@ -1865,7 +1865,7 @@ rb_method_name_error(VALUE klass, VALUE str)
{
#define MSG(s) rb_fstring_lit("undefined method `%1$s' for"s" `%2$s'")
VALUE c = klass;
VALUE s;
VALUE s = Qundef;
if (FL_TEST(c, FL_SINGLETON)) {
VALUE obj = rb_ivar_get(klass, attached);
@ -1878,13 +1878,11 @@ rb_method_name_error(VALUE klass, VALUE str)
default:
break;
}
goto normal_class;
}
else if (RB_TYPE_P(c, T_MODULE)) {
s = MSG(" module");
}
else {
normal_class:
if (s == Qundef) {
s = MSG(" class");
}
rb_name_err_raise_str(s, c, str);