From: mame@... Date: 2020-02-14T12:34:47+00:00 Subject: [ruby-core:97164] [Ruby master Bug#16633] TracePoint :line event issue Issue #16633 has been updated by mame (Yusuke Endoh). Status changed from Open to Rejected In fact, Line 7 is not reachable. The return statement in the block jumps to the callsite of foo. ``` def bar yield 1 puts "unreachable" end def foo bar do |a| return a # skips the rest of bar, and immediately returns to the callsite of foo end puts "unreachable too" end foo # the callsite of foo ``` ---------------------------------------- Bug #16633: TracePoint :line event issue https://bugs.ruby-lang.org/issues/16633#change-84270 * Author: ViugiNick (Nickolay Viuginov) * Status: Rejected * Priority: Normal * ruby -v: 2.3.1-2.7.0 * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- ``` ruby TracePoint.new(:line) do |tp| p [tp.lineno, tp.event] end.enable def bar yield 1 yield 2 end def foo 1 + 1 bar do |a| return a end 1 + 1 end def foobar 1 + 1 puts foo 1 + 1 end foobar ``` [5, :line] [9, :line] [16, :line] [21, :line] [17, :line] [18, :line] [10, :line] [11, :line] [6, :line] [12, :line] 1 [19, :line] As you can see there is no line event for line #7 -- https://bugs.ruby-lang.org/ Unsubscribe: