Actions
Bug #16633
closedTracePoint :line event issue
Description
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
Updated by ViugiNick (Nickolay Viuginov) almost 5 years ago
- ruby -v set to 2.3.1-2.7.0
Updated by mame (Yusuke Endoh) almost 5 years ago
- 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
Actions
Like0
Like0Like0