From 8ffc523c544a7ddbde753e89021fa2a2a345a875 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Mon, 8 Jul 2019 16:54:28 -0700 Subject: [PATCH 1/2] Add empty(::NamedTuple) --- base/namedtuple.jl | 1 + test/namedtuple.jl | 2 ++ 2 files changed, 3 insertions(+) diff --git a/base/namedtuple.jl b/base/namedtuple.jl index 23967e9323f98..67eaaa9efe941 100644 --- a/base/namedtuple.jl +++ b/base/namedtuple.jl @@ -106,6 +106,7 @@ getindex(t::NamedTuple, i::Symbol) = getfield(t, i) indexed_iterate(t::NamedTuple, i::Int, state=1) = (getfield(t, i), i+1) isempty(::NamedTuple{()}) = true isempty(::NamedTuple) = false +empty(::NamedTuple) = NamedTuple() convert(::Type{NamedTuple{names,T}}, nt::NamedTuple{names,T}) where {names,T<:Tuple} = nt convert(::Type{NamedTuple{names}}, nt::NamedTuple{names}) where {names} = nt diff --git a/test/namedtuple.jl b/test/namedtuple.jl index 369ed5fdbd76b..82e711d625cbc 100644 --- a/test/namedtuple.jl +++ b/test/namedtuple.jl @@ -38,6 +38,8 @@ @test isempty(NamedTuple()) @test !isempty((a=1,)) +@test empty((a=1,)) === NamedTuple() +@test isempty(empty((a=1,))) @test (a=1,b=2) === (a=1,b=2) @test (a=1,b=2) !== (b=1,a=2) From 01b4a5acf68c28f9dc85606287b1a9ecd1ae2860 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Tue, 9 Jul 2019 12:23:05 -0700 Subject: [PATCH 2/2] [ci skip] Mention it in NEWS.md --- NEWS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/NEWS.md b/NEWS.md index f3ee8bb0abb56..674d1090fa31b 100644 --- a/NEWS.md +++ b/NEWS.md @@ -40,6 +40,7 @@ Standard library changes when operating over zero-dimensional arrays ([#32122]). * `IPAddr` subtypes now behave like scalars when used in broadcasting ([#32133]). * `clamp` can now handle missing values ([#31066]). +* `empty` now accepts a `NamedTuple` ([#32534]) #### Libdl