Apologies there is one line missing in my last email, the code should be : foo <- function() "hello" trace2 <- function(fun) trace(fun, quote(print("!!!"))) trace2(foo) # <- THIS LINE WAS MISSING base::fun
Best, Antoine Le mar. 25 août 2020 à 22:02, Antoine Fabri <antoine.fa...@gmail.com> a écrit : > Dear R-devel, > > I don't think this is expected : > > foo <- function() "hello" > trace2 <- function(fun) trace(fun, quote(print("!!!"))) > base::fun > # Object with tracing code, class "functionWithTrace" > # Original definition: > # function() "hello" > # > # ## (to see the tracing code, look at body(object)) > > `untrace()` has the same behavior. > > This is inconsistent with how debug works : > > foo <- function() "hello" > debug2 <- function(fun) debug(fun) > debug2(foo) > isdebugged(foo) > # [1] TRUE > > This can be worked around by defining : > > trace2 <- function(fun) eval.parent(substitute(trace(fun, > quote(print("!!!"))) > > but I believe the current behavior is undesired and it'd be better to make > it behave as `debug()`, or to throw an error. > > Best, > > Antoine > [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel