From a89b364268e7c1d2968983fbcf0a9f78e90d51a2 Mon Sep 17 00:00:00 2001 From: Garrick Aden-Buie Date: Tue, 16 May 2023 15:21:11 -0400 Subject: [PATCH 1/3] Fix `NULL` caller function environment --- R/deprecated.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/R/deprecated.R b/R/deprecated.R index 2b2188342..cf4d48dfb 100644 --- a/R/deprecated.R +++ b/R/deprecated.R @@ -164,7 +164,10 @@ deprecate_if_not_called_from_shiny <- function(old_name, new, version) { function(...) { caller_fn_env <- environment(rlang::caller_fn()) - if (!identical(rlang::env_name(caller_fn_env), "namespace:shiny")) { + if (!is.null(caller_fn_env)) { + caller_fn_env <- rlang::env_name(caller_fn_env) + } + if (!identical(caller_fn_env, "namespace:shiny")) { msg <- sprintf( "`%s()` was deprecated in {bslib} version %s, use `%s()` instead.", old_name, version, new_name From 0e9b58e50b25d820f0c7198bfa80df8aa6948e80 Mon Sep 17 00:00:00 2001 From: Garrick Aden-Buie Date: Tue, 16 May 2023 15:30:47 -0400 Subject: [PATCH 2/3] Be even more safe about caller fn environment --- R/deprecated.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/deprecated.R b/R/deprecated.R index cf4d48dfb..e0b6789db 100644 --- a/R/deprecated.R +++ b/R/deprecated.R @@ -164,7 +164,7 @@ deprecate_if_not_called_from_shiny <- function(old_name, new, version) { function(...) { caller_fn_env <- environment(rlang::caller_fn()) - if (!is.null(caller_fn_env)) { + if (!is.null(caller_fn_env) && rlang::is_environment(caller_fn_env))) { caller_fn_env <- rlang::env_name(caller_fn_env) } if (!identical(caller_fn_env, "namespace:shiny")) { From 7c103cfef9eb5bed2c21e090adfca9788126423b Mon Sep 17 00:00:00 2001 From: Carson Sievert Date: Tue, 16 May 2023 14:38:41 -0500 Subject: [PATCH 3/3] Update R/deprecated.R --- R/deprecated.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/deprecated.R b/R/deprecated.R index e0b6789db..2586217f2 100644 --- a/R/deprecated.R +++ b/R/deprecated.R @@ -164,7 +164,7 @@ deprecate_if_not_called_from_shiny <- function(old_name, new, version) { function(...) { caller_fn_env <- environment(rlang::caller_fn()) - if (!is.null(caller_fn_env) && rlang::is_environment(caller_fn_env))) { + if (!is.null(caller_fn_env) && rlang::is_environment(caller_fn_env)) { caller_fn_env <- rlang::env_name(caller_fn_env) } if (!identical(caller_fn_env, "namespace:shiny")) {