diff options
-rw-r--r-- | test/ruby/test_backtrace.rb | 14 | ||||
-rw-r--r-- | vm_backtrace.c | 2 |
2 files changed, 15 insertions, 1 deletions
diff --git a/test/ruby/test_backtrace.rb b/test/ruby/test_backtrace.rb index 0730b5d1c5..00c96b3b9f 100644 --- a/test/ruby/test_backtrace.rb +++ b/test/ruby/test_backtrace.rb @@ -329,4 +329,18 @@ class TestBacktrace < Test::Unit::TestCase bar end; end + + def test_caller_to_enum + err = ["-:3:in `foo': unhandled exception", "\tfrom -:in `each'"] + assert_in_out_err([], <<-"end;", [], err, "[ruby-core:91911]") + def foo + return to_enum(__method__) unless block_given? + raise + yield 1 + end + + enum = foo + enum.next + end; + end end diff --git a/vm_backtrace.c b/vm_backtrace.c index 8264018da0..6e48ef4580 100644 --- a/vm_backtrace.c +++ b/vm_backtrace.c @@ -352,7 +352,7 @@ location_to_str(rb_backtrace_location_t *loc) } else { file = GET_VM()->progname; - lineno = INT2FIX(0); + lineno = 0; } name = rb_id2str(loc->body.cfunc.mid); break; |