Issue #14889 has been updated by mame (Yusuke Endoh).


I'm unsure about your assumption.  If you can insert a newline freely, you may want to write the following code:

```
  30  1|        def print_summary(
  31   |            output = (
  32  0|              $stdout
  33   |            )
  34   |        )
```

You can hook Line 32 as a `:line` event.

We usually write an optional argument in a line: `def print_summary(out = $stdout)`.  I don't think it is a good idea to deal with such a code as a `:line` event because for `def foo(x = 1, y = 2)` we cannot distinguish `x` event and `y` event.

As you say, if we really need this, we should add a new event type like `:argument`, but we need to design its API carefully based on actual use cases.

----------------------------------------
Bug #14889: TracePoint for :line never seems to trigger on argument list. Maybe by design?
https://bugs.ruby-lang.org/issues/14889#change-72750

* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
I have the following code.

```
  30  1|		def print_summary(
  31  0|			output = $stdout
  32   |		)
```

In the margin is the line number followed by the number of hits according to `:line` trace point.

I feel like line 31 should also trigger a line trace point. It's an argument, but it must be executed.

Maybe a different trace point? `:argument`?



-- 
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>