Skip to content

Commit ff012aa

Browse files
authored
improve inferrability of loading.jl (#49812)
1 parent c245179 commit ff012aa

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

base/loading.jl

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -627,7 +627,7 @@ function manifest_deps_get(env::String, where::PkgId, name::String)::Union{Nothi
627627
exts = get(d, "extensions", nothing)::Union{Dict{String, Any}, Nothing}
628628
if exts !== nothing
629629
# Check if `where` is an extension of the project
630-
if where.name in keys(exts) && where.uuid == uuid5(proj.uuid, where.name)
630+
if where.name in keys(exts) && where.uuid == uuid5(proj.uuid::String, where.name)
631631
# Extensions can load weak deps...
632632
weakdeps = get(d, "weakdeps", nothing)::Union{Dict{String, Any}, Nothing}
633633
if weakdeps !== nothing
@@ -1209,7 +1209,9 @@ function insert_extension_triggers(env::String, pkg::PkgId)::Union{Nothing,Missi
12091209
extensions = get(d_proj, "extensions", nothing)::Union{Nothing, Dict{String, Any}}
12101210
extensions === nothing && return
12111211
weakdeps === nothing && return
1212-
return _insert_extension_triggers(pkg, extensions, weakdeps)
1212+
if weakdeps isa Dict{String, Any}
1213+
return _insert_extension_triggers(pkg, extensions, weakdeps)
1214+
end
12131215
end
12141216

12151217
# Now look in manifest
@@ -1231,7 +1233,7 @@ function insert_extension_triggers(env::String, pkg::PkgId)::Union{Nothing,Missi
12311233
return _insert_extension_triggers(pkg, extensions, weakdeps)
12321234
end
12331235

1234-
d_weakdeps = Dict{String, String}()
1236+
d_weakdeps = Dict{String, Any}()
12351237
for (dep_name, entries) in d
12361238
dep_name in weakdeps || continue
12371239
entries::Vector{Any}
@@ -1251,8 +1253,9 @@ function insert_extension_triggers(env::String, pkg::PkgId)::Union{Nothing,Missi
12511253
return nothing
12521254
end
12531255

1254-
function _insert_extension_triggers(parent::PkgId, extensions::Dict{String, <:Any}, weakdeps::Dict{String, <:Any})
1255-
for (ext::String, triggers::Union{String, Vector{String}}) in extensions
1256+
function _insert_extension_triggers(parent::PkgId, extensions::Dict{String, Any}, weakdeps::Dict{String, Any})
1257+
for (ext, triggers) in extensions
1258+
triggers = triggers::Union{String, Vector{String}}
12561259
triggers isa String && (triggers = [triggers])
12571260
id = PkgId(uuid5(parent.uuid, ext), ext)
12581261
if id in keys(EXT_PRIMED) || haskey(Base.loaded_modules, id)

base/reflection.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1248,7 +1248,8 @@ function may_invoke_generator(method::Method, @nospecialize(atype), sparams::Sim
12481248
generator = method.generator
12491249
isa(generator, Core.GeneratedFunctionStub) || return false
12501250
gen_mthds = _methods_by_ftype(Tuple{typeof(generator.gen), Vararg{Any}}, 1, method.primary_world)
1251-
(gen_mthds isa Vector && length(gen_mthds) == 1) || return false
1251+
gen_mthds isa Vector || return false
1252+
length(gen_mthds) == 1 || return false
12521253

12531254
generator_method = first(gen_mthds).method
12541255
nsparams = length(sparams)

0 commit comments

Comments
 (0)