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: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>