test_that("crate", { meta_f = function(z) { x = 1 y = 2 crate(function() { c(x, y, z) }, x, .parent = parent.frame()) } x = 100 y = 200 z = 300 f = meta_f(1) expect_equal(f(), c(1, 200, 300)) }) test_that("compilation works", { expect_false(is_compiled(crate(function() NULL, .compile = FALSE))) expect_true(is_compiled(crate(function() NULL, .compile = TRUE))) expect_true(is_compiled(crate(compiler::cmpfun(function() NULL), .compile = FALSE))) })