From c5cc0ea75577efd9332df8e1303ebef46e5153db Mon Sep 17 00:00:00 2001 From: Jacob Quinn Date: Thu, 24 Apr 2025 07:24:52 -0600 Subject: [PATCH] Empty NamedTuple definitions for get to appease JET MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without these, we end up with JET errors like: ``` ┌ get(f::StructUtils.var"#31#33", nt::@NamedTuple{}, key::Int64) @ Base ./namedtuple.jl:389 │ invalid builtin function call: Base.getfield(nt::@NamedTuple{}, key::Int64) ``` --- base/namedtuple.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/base/namedtuple.jl b/base/namedtuple.jl index f71b13852b953..6c3ada5bdd8bb 100644 --- a/base/namedtuple.jl +++ b/base/namedtuple.jl @@ -382,8 +382,10 @@ end keys(nt::NamedTuple{names}) where {names} = names::Tuple{Vararg{Symbol}} values(nt::NamedTuple) = Tuple(nt) haskey(nt::NamedTuple, key::Union{Integer, Symbol}) = isdefined(nt, key) +get(::NamedTuple{}, key::Union{Integer, Symbol}, default) = default get(nt::NamedTuple, key::Union{Integer, Symbol}, default) = isdefined(nt, key) ? getfield(nt, key) : default get(f::Callable, nt::NamedTuple, key::Union{Integer, Symbol}) = isdefined(nt, key) ? getfield(nt, key) : f() +get(f::Callable, ::NamedTuple{}, key::Union{Integer, Symbol}) = f() tail(t::NamedTuple{names}) where names = NamedTuple{tail(names::Tuple)}(t) front(t::NamedTuple{names}) where names = NamedTuple{front(names::Tuple)}(t) reverse(nt::NamedTuple) = NamedTuple{reverse(keys(nt))}(reverse(values(nt)))