@@ -205,10 +205,15 @@ let mod = Base.include(Base.__toplevel__, inputfile)
205205end
206206
207207# Additional method patches depending on whether user code loads certain stdlibs
208+ let loaded = Base. loaded_modules_array ()
209+ function find_loaded_module (name)
210+ idx = findfirst ((m) -> Symbol (m) === name, loaded)
211+ idx === nothing && return nothing
212+ return loaded[idx]
213+ end
208214
209- let loaded = Symbol .(Base. loaded_modules_array ()) # TODO better way to do this
210- if :SparseArrays in loaded
211- using SparseArrays
215+ SparseArrays = find_loaded_module (:SparseArrays )
216+ if SparseArrays != = nothing
212217 @eval SparseArrays. CHOLMOD begin
213218 function __init__ ()
214219 ccall ((:SuiteSparse_config_malloc_func_set , :libsuitesparseconfig ),
@@ -222,8 +227,9 @@ let loaded = Symbol.(Base.loaded_modules_array()) # TODO better way to do this
222227 end
223228 end
224229 end
225- if :Artifacts in loaded
226- using Artifacts
230+
231+ Artifacts = find_loaded_module (:Artifacts )
232+ if Artifacts != = nothing
227233 @eval Artifacts begin
228234 function _artifact_str (__module__, artifacts_toml, name, path_tail, artifact_dict, hash, platform, _:: Val{lazyartifacts} ) where lazyartifacts
229235 # If the artifact exists, we're in the happy path and we can immediately
@@ -238,26 +244,30 @@ let loaded = Symbol.(Base.loaded_modules_array()) # TODO better way to do this
238244 end
239245 end
240246 end
241- if :Pkg in loaded
242- using Pkg
247+
248+ Pkg = find_loaded_module (:Pkg )
249+ if Pkg != = nothing
243250 @eval Pkg begin
244251 __init__ () = rand () # TODO , methods that do nothing don't get codegened
245252 end
246253 end
247- if :StyledStrings in loaded
248- using StyledStrings
254+
255+ StyledStrings = find_loaded_module (:StyledStrings )
256+ if StyledStrings != = nothing
249257 @eval StyledStrings begin
250258 __init__ () = rand ()
251259 end
252260 end
253- if :Markdown in loaded
254- using Markdown
261+
262+ Markdown = find_loaded_module (:Markdown )
263+ if Markdown != = nothing
255264 @eval Markdown begin
256265 __init__ () = rand ()
257266 end
258267 end
259- if :JuliaSyntaxHighlighting in loaded
260- using JuliaSyntaxHighlighting
268+
269+ JuliaSyntaxHighlighting = find_loaded_module (:JuliaSyntaxHighlighting )
270+ if JuliaSyntaxHighlighting != = nothing
261271 @eval JuliaSyntaxHighlighting begin
262272 __init__ () = rand ()
263273 end
0 commit comments