diff --git a/base/precompilation.jl b/base/precompilation.jl index 4efd35836a29d..736fc3b27fb0e 100644 --- a/base/precompilation.jl +++ b/base/precompilation.jl @@ -26,6 +26,9 @@ struct ExplicitEnv end function ExplicitEnv(envpath::String=Base.active_project()) + if !isfile(envpath) + error("expected a project file at $(repr(envpath))") + end envpath = abspath(envpath) project_d = parsed_toml(envpath) @@ -51,6 +54,11 @@ function ExplicitEnv(envpath::String=Base.active_project()) end end + # A package in both deps and weakdeps is in fact only a weakdep + for (name, _) in project_weakdeps + delete!(project_deps, name) + end + project_extensions = Dict{String, Vector{UUID}}() # Collect all extensions of the project for (name, triggers::Union{String, Vector{String}}) in get(Dict{String, Any}, project_d, "extensions")::Dict{String, Any}