@@ -126,22 +126,25 @@ Future <- function(expr = NULL, envir = parent.frame(), substitute = TRUE, stdou
126126 args_names <- names(args )
127127
128128 # # WORKAROUND: Skip scanning of globals if already done /HB 2021-01-18
129- if (! inherits(globals , " Globals" ) ||
130- ! isTRUE(attr(globals , " already-done" , exact = TRUE ))) {
131- # # Global objects?
132- # # 'persistent' is only allowed for ClusterFuture:s, which will be
133- # # asserted when run() is called /HB 2023-01-17
134- gp <- getGlobalsAndPackages(expr , envir = envir , tweak = tweakExpression , globals = globals , persistent = isTRUE(args $ persistent ))
135- globals <- gp $ globals
136- expr <- gp $ expr
137-
138- # # Record packages?
139- if (length(packages ) > 0 || (length(gp $ packages ) > 0 && lazy )) {
140- packages <- c(gp $ packages , packages )
141- }
129+ if (! is.null(globals )) {
130+ if (! inherits(globals , " Globals" ) ||
131+ ! isTRUE(attr(globals , " already-done" , exact = TRUE ))) {
132+ # # Global objects?
133+ # # 'persistent' is only allowed for ClusterFuture:s, which will be
134+ # # asserted when run() is called /HB 2023-01-17
135+ gp <- getGlobalsAndPackages(expr , envir = envir , tweak = tweakExpression , globals = globals , persistent = isTRUE(args $ persistent ))
136+ globals <- gp $ globals
137+ expr <- gp $ expr
142138
143- gp <- NULL
139+ # # Record packages?
140+ if (length(packages ) > 0 || (length(gp $ packages ) > 0 && lazy )) {
141+ packages <- c(gp $ packages , packages )
142+ }
143+
144+ gp <- NULL
145+ }
144146 }
147+
145148 if (length(packages ) > 1L ) packages <- unique(packages )
146149
147150 with_assert({
0 commit comments