@@ -135,24 +135,17 @@ end
135135extract_imports! (imports, x) = imports
136136function extract_imports! (imports, ex:: Expr )
137137 if Meta. isexpr (ex, (:import , :using ))
138- m = ex. args[1 ]
139- if isa (m, Expr) && m. head === :(:)
140- push! (imports, m. args[1 ]. args[1 ])
141- else
142- for a in ex. args
143- push! (imports, a. args[1 ])
144- end
145- end
138+ push! (imports, ex)
146139 elseif Meta. isexpr (ex, :let )
147140 extract_imports! (imports, ex. args[2 ])
148141 elseif Meta. isexpr (ex, (:toplevel , :block ))
149- for i in eachindex ( ex. args)
150- extract_imports! (imports, ex . args[i] )
142+ for arg in ex. args
143+ extract_imports! (imports, arg )
151144 end
152145 end
153146 return imports
154147end
155- extract_imports (x) = extract_imports! (Symbol [], x)
148+ extract_imports (x) = extract_imports! (Any [], x)
156149
157150"""
158151 @everywhere [procs()] expr
@@ -183,7 +176,7 @@ macro everywhere(ex)
183176end
184177
185178macro everywhere (procs, ex)
186- imps = [ Expr ( :import , m) for m in extract_imports (ex)]
179+ imps = extract_imports (ex)
187180 return quote
188181 $ (isempty (imps) ? nothing : Expr (:toplevel , imps... )) # run imports locally first
189182 let ex = $ (Expr (:quote , ex)), procs = $ (esc (procs))
0 commit comments