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:
parent
2390a8bd2e
commit
8b9b51bb3b
Notes:
git
2020-06-29 11:06:55 +09:00
6
proc.c
6
proc.c
@ -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'")
|
#define MSG(s) rb_fstring_lit("undefined method `%1$s' for"s" `%2$s'")
|
||||||
VALUE c = klass;
|
VALUE c = klass;
|
||||||
VALUE s;
|
VALUE s = Qundef;
|
||||||
|
|
||||||
if (FL_TEST(c, FL_SINGLETON)) {
|
if (FL_TEST(c, FL_SINGLETON)) {
|
||||||
VALUE obj = rb_ivar_get(klass, attached);
|
VALUE obj = rb_ivar_get(klass, attached);
|
||||||
@ -1878,13 +1878,11 @@ rb_method_name_error(VALUE klass, VALUE str)
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
goto normal_class;
|
|
||||||
}
|
}
|
||||||
else if (RB_TYPE_P(c, T_MODULE)) {
|
else if (RB_TYPE_P(c, T_MODULE)) {
|
||||||
s = MSG(" module");
|
s = MSG(" module");
|
||||||
}
|
}
|
||||||
else {
|
if (s == Qundef) {
|
||||||
normal_class:
|
|
||||||
s = MSG(" class");
|
s = MSG(" class");
|
||||||
}
|
}
|
||||||
rb_name_err_raise_str(s, c, str);
|
rb_name_err_raise_str(s, c, str);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user