Fixed backtrace message for top-level blocks; fix
In top-level, `mid` is `NULL`. We used to ignore 'mid` update for `NULL`.
MODIFY
src/vm.c
src/vm.c
@@ -1500,8 +1500,7 @@ RETRY_TRY_BLOCK:
mrb_sym mid;
struct REnv *e = MRB_PROC_ENV(m);
- mid = e->mid;
- if (mid) ci->mid = mid;
+ ci->mid = mid = e->mid;
if (!e->stack) {
e->stack = mrb->c->stack;
}

MODIFY
test/t/exception.rb
test/t/exception.rb
@@ -400,7 +400,7 @@ assert('GC in rescue') do
end
rescue => exception
GC.start
- assert_equal("#{__FILE__}:#{line}:in call",
+ assert_equal("#{__FILE__}:#{line}",
exception.backtrace.first)
end
end
@@ -418,7 +418,7 @@ assert('Method call in rescue') do
rescue => exception
[3].each do
end
- assert_equal("#{__FILE__}:#{line}:in call",
+ assert_equal("#{__FILE__}:#{line}",
exception.backtrace.first)
end
end

Fixed backtrace message for top-level blocks; fix #4936

In top-level, `mid` is `NULL`. We used to ignore 'mid` update for `NULL`.