From 8d83d53e21a4d49ba1653a50b7fa4f569b27e729 Mon Sep 17 00:00:00 2001 From: Kristoffer Carlsson Date: Wed, 16 Aug 2023 22:08:34 +0200 Subject: [PATCH] fix inference of PackageSpec constructor in presence of imprecise input types (#3585) --- src/Types.jl | 8 ++++---- test/misc.jl | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Types.jl b/src/Types.jl index 5a287af67e..8c5c782700 100644 --- a/src/Types.jl +++ b/src/Types.jl @@ -127,10 +127,10 @@ function PackageSpec(; name::Union{Nothing,AbstractString} = nothing, uuid = uuid === nothing ? nothing : UUID(uuid) return PackageSpec(name, uuid, version, tree_hash, repo, path, pinned, url, rev, subdir) end -PackageSpec(name::AbstractString) = PackageSpec(;name=name) -PackageSpec(name::AbstractString, uuid::UUID) = PackageSpec(;name=name, uuid=uuid) -PackageSpec(name::AbstractString, version::VersionTypes) = PackageSpec(;name=name, version=version) -PackageSpec(n::AbstractString, u::UUID, v::VersionTypes) = PackageSpec(;name=n, uuid=u, version=v) +PackageSpec(name::AbstractString) = PackageSpec(;name=name)::PackageSpec +PackageSpec(name::AbstractString, uuid::UUID) = PackageSpec(;name=name, uuid=uuid)::PackageSpec +PackageSpec(name::AbstractString, version::VersionTypes) = PackageSpec(;name=name, version=version)::PackageSpec +PackageSpec(n::AbstractString, u::UUID, v::VersionTypes) = PackageSpec(;name=n, uuid=u, version=v)::PackageSpec function Base.:(==)(a::PackageSpec, b::PackageSpec) return a.name == b.name && a.uuid == b.uuid && a.version == b.version && diff --git a/test/misc.jl b/test/misc.jl index 557b484bd0..e9b3d00ff6 100644 --- a/test/misc.jl +++ b/test/misc.jl @@ -25,4 +25,6 @@ end end end +@test eltype([PackageSpec(a) for a in []]) == PackageSpec + end # module