From dc401f6ebcc2707cb84d87bfff0e9ac7d728258c Mon Sep 17 00:00:00 2001 From: Claus Wilke Date: Fri, 17 Aug 2018 22:25:13 -0500 Subject: [PATCH 1/2] Add evaluating environment to tidy eval call. closes #2835 --- R/axis-secondary.R | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/R/axis-secondary.R b/R/axis-secondary.R index a7eb19546d..d62ecc275f 100644 --- a/R/axis-secondary.R +++ b/R/axis-secondary.R @@ -106,7 +106,11 @@ AxisSecondary <- ggproto("AxisSecondary", NULL, transform_range = function(self, range) { range <- structure(data.frame(range), names = '.') - rlang::eval_tidy(rlang::f_rhs(self$trans), data = range) + rlang::eval_tidy( + rlang::f_rhs(self$trans), + data = range, + env = rlang::f_env(self$trans) + ) }, break_info = function(self, range, scale) { From 5b291fae0565a5c39480b690f5bc407bb63c2696 Mon Sep 17 00:00:00 2001 From: Claus Wilke Date: Sat, 18 Aug 2018 11:55:40 -0500 Subject: [PATCH 2/2] modify unit test to use local variable inside function --- tests/testthat/test-sec-axis.R | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/testthat/test-sec-axis.R b/tests/testthat/test-sec-axis.R index ced8c58ef3..6d79c2875e 100644 --- a/tests/testthat/test-sec-axis.R +++ b/tests/testthat/test-sec-axis.R @@ -93,15 +93,19 @@ test_that("sec axis works with skewed transform", { }) test_that("sec axis works with tidy eval", { + # decoy, not used + a <- 5 + f <- function(df, .x, .y, .z) { x <- enquo(.x) y <- enquo(.y) z <- enquo(.z) + a <- 10 # scaling of secondary axis g <- ggplot(df, aes(x = !!x, y = !!y)) + geom_bar(stat = "identity") + geom_point(aes(y = !!z)) + - scale_y_continuous(sec.axis = sec_axis(~. / 10)) + scale_y_continuous(sec.axis = sec_axis(~. / a)) g }