On 14/11/2014, 6:51 PM, Janko Thyson wrote:
Dear list,
I just encountered a behavior that I've never seen before:
Is it possible, that certain argument names (lazy in my case) are
special/reserved and thus would lead to unexpected behavior when a
stack is involved that spreads across functions of three different
packages: optionr::setAnywhereOptions() calls nestr::setNested() calls
reactr::setShinyReactive()?
Or is there something I'm generally missing with respect the combination
lexical scoping/the frame stack, S4 and default values of function
arguments.
Running the following code leads to a situation where the default value
`lazy` in `reactr::setShinyReactive()` is not properly recognized while
others (e.g. `push`) are recognized just fine:
require("devtools")
devtools::install_github("Rappster/conditionr")
devtools::install_github("Rappster/nestr")
devtools::install_github("Rappster/optionr")
require("optionr")
container <- initializeOptionContainer(overwrite = TRUE)
expect_true(setAnywhereOption(id = "x_1", value = TRUE, reactive = TRUE))
expect_equal(getAnywhereOption(id = "x_1"), TRUE)
expect_true(res <- setAnywhereOption(id = "x_2",
value = reactr::reactiveExpression(
!getAnywhereOption(id = "x_1")
),
reactive = TRUE))
The current version of `setShinyReactive()` contains a debugging section
that prints these status messages (the actual code:
https://github.com/Rappster/reactr/blob/bug-28/R/setShinyReactive.r#L196
DEBUG/push/before[1] FALSE
DEBUG/lazy/before
Error in print(lazy) : argument is missing, with no default
DEBUG/is_lazy/before[1] FALSE
DEBUG/lazy/after[1] FALSE
It also contains my current workaround: also include an argument with
name `is_lazy` (whose default)
value is recognized again) and then run `lazy <- is_lazy`.
You can also find this information in this Stackoverflow post:
Thanks a lot for everyone that can shed some light on this!
Sorry, I don't use Stackoverflow. If you don't get a more useful answer
from someone else, please simplify the question and post a
self-contained version to R-help.
Duncan Murdoch
Best regards,
Janko
[[alternative HTML version deleted]]