From e8f90e73978c0321021c177fe3fa2623a8b3a4de Mon Sep 17 00:00:00 2001 From: Koichi Sasada Date: Fri, 25 Oct 2019 04:01:02 +0900 Subject: check T_ICLASS for Method#inspect. METHOD::klass can contain T_ICLASS so inspect should respect it. --- proc.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'proc.c') diff --git a/proc.c b/proc.c index ca6e671fd6..4dfcf67764 100644 --- a/proc.c +++ b/proc.c @@ -2819,6 +2819,14 @@ method_inspect(VALUE method) mklass = data->klass; + if (RB_TYPE_P(mklass, T_ICLASS)) { + /* TODO: I'm not sure why mklass is T_ICLASS. + * UnboundMethod#bind() can set it as T_ICLASS at convert_umethod_to_method_components() + * but not sure it is needed. + */ + mklass = RBASIC_CLASS(mklass); + } + if (data->me->def->type == VM_METHOD_TYPE_ALIAS) { defined_class = data->me->def->body.alias.original_me->owner; } -- cgit v1.2.3