メモ:active bindingは上書きしようとしても発動する

まあそらそうやろ、という感じですが。忘れそうなのでメモ。

library(rlang)

usual_variables <- list(a = 1, b = 2)
hedgehog_variables <- list(a = function(...) abort("Ouch!"))

# fail
e1 <- new_environment()
env_bind_active(e1, !!!hedgehog_variables)
env_bind(e1, !!!usual_variables)
#> Error: Ouch!

# OK
e2 <- new_environment()
env_bind(e2, !!!usual_variables)
env_bind_active(e2, !!!hedgehog_variables)

e2$b
#> [1] 2
e2$a
#> Error: Ouch!

Created on 2020-01-16 by the reprex package (v0.3.0)

active bindingがどう便利なのか知りたい方はこのへんを見てください。