Skip to content
Prev 43201 / 63424 Next

A doubt about substitute() after delayedAssign()

Hello,

?delayedAssign presents substitute() as a way to look at the expression 
in the promise. However,

msg <- "old"
delayedAssign("x", msg)
msg <- "new!"
x #- new!
substitute(x) #- x (was 'msg' ?)

Here, we just got 'x'... shouldn't we got 'msg'?

Same result when the promise is not evaluated yet:

delayedAssign("x", msg)
substitute(x)

In a function, that works:

foo <- function (x = msg) substitute(x)
foo()

Did I misunderstood something? It seems to me that substitute() does not 
behaves as documented for promises created using delayedAssign().
Best,

Philippe