From 26c1ad7507de3c53c98030fc60c6dd0d2a1886c3 Mon Sep 17 00:00:00 2001 From: Michael Abbott <32575566+mcabbott@users.noreply.github.com> Date: Sat, 26 Aug 2023 12:53:44 -0400 Subject: [PATCH 1/3] functor Returns --- Project.toml | 2 +- src/base.jl | 2 ++ test/base.jl | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 44585b8..2559d16 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "Functors" uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" authors = ["Mike J Innes "] -version = "0.4.5" +version = "0.4.6" [deps] LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" diff --git a/src/base.jl b/src/base.jl index 3127e94..e940792 100644 --- a/src/base.jl +++ b/src/base.jl @@ -10,6 +10,8 @@ @functor Base.Fix2 @functor Base.Broadcast.BroadcastFunction +@functor Base.Returns + ### ### Array wrappers ### diff --git a/test/base.jl b/test/base.jl index 6f530f3..97dea63 100644 --- a/test/base.jl +++ b/test/base.jl @@ -50,6 +50,12 @@ end @test fmap(x -> x + 10, bf) == Base.Broadcast.BroadcastFunction(Bar(13.3)) end +@testset "Returns" begin + ret = Returns([0, pi, 2pi]) + @test Functors.functor(ret)[1] == (value = [0, pi, 2pi],) + @test Functors.functor(ret)[2]((value = 1:3,)) === Returns(1:3) +end + @testset "LinearAlgebra containers" begin @test fmapstructure(identity, [1,2,3]') == (parent = [1, 2, 3],) @test fmapstructure(identity, transpose([1,2,3])) == (parent = [1, 2, 3],) From 7c7e662fee4ec54738652a5f6cd1be5b58810c30 Mon Sep 17 00:00:00 2001 From: Michael Abbott <32575566+mcabbott@users.noreply.github.com> Date: Fri, 1 Sep 2023 20:44:18 -0400 Subject: [PATCH 2/3] Update src/base.jl Co-authored-by: Brian Chen --- src/base.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/base.jl b/src/base.jl index e940792..6bcd8b0 100644 --- a/src/base.jl +++ b/src/base.jl @@ -10,7 +10,9 @@ @functor Base.Fix2 @functor Base.Broadcast.BroadcastFunction -@functor Base.Returns +@static if VERSION >= v"1.7" + @functor Base.Returns +end ### ### Array wrappers From e9d6f6e9f3e98fe3e9b11d8c39bb733037862597 Mon Sep 17 00:00:00 2001 From: Michael Abbott <32575566+mcabbott@users.noreply.github.com> Date: Sat, 2 Sep 2023 11:20:18 -0400 Subject: [PATCH 3/3] Update test/base.jl --- test/base.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/base.jl b/test/base.jl index 97dea63..5ac5bea 100644 --- a/test/base.jl +++ b/test/base.jl @@ -50,7 +50,7 @@ end @test fmap(x -> x + 10, bf) == Base.Broadcast.BroadcastFunction(Bar(13.3)) end -@testset "Returns" begin +VERSION >= v"1.7" && @testset "Returns" begin ret = Returns([0, pi, 2pi]) @test Functors.functor(ret)[1] == (value = [0, pi, 2pi],) @test Functors.functor(ret)[2]((value = 1:3,)) === Returns(1:3)