From c16e714a7f0b070cfe48a7c2ee75c6e7d71af1cc Mon Sep 17 00:00:00 2001 From: Tim Bradt Date: Sun, 21 Jul 2019 11:56:33 -0400 Subject: [PATCH 1/3] Add missing ! to setindex in setting with a lens --- src/lens.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lens.jl b/src/lens.jl index 1c8c78c..9d2e8d7 100644 --- a/src/lens.jl +++ b/src/lens.jl @@ -224,7 +224,7 @@ Base.@propagate_inbounds function get(obj, l::IndexLens) getindex(obj, l.indices...) end Base.@propagate_inbounds function set(obj, l::IndexLens, val) - setindex(obj, val, l.indices...) + setindex!(obj, val, l.indices...) end """ From 58c9bf298433e3093a57f2191a5e963a24678c63 Mon Sep 17 00:00:00 2001 From: Tim Bradt Date: Sun, 21 Jul 2019 12:10:39 -0400 Subject: [PATCH 2/3] Made fix to work with Tuples again --- src/lens.jl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/lens.jl b/src/lens.jl index 9d2e8d7..27eb236 100644 --- a/src/lens.jl +++ b/src/lens.jl @@ -223,6 +223,12 @@ end Base.@propagate_inbounds function get(obj, l::IndexLens) getindex(obj, l.indices...) end + +Base.@propagate_inbounds function set(obj::Tuple, l::IndexLens, val) + setindex(obj, val, l.indices...) +end + + Base.@propagate_inbounds function set(obj, l::IndexLens, val) setindex!(obj, val, l.indices...) end From be4994317c638cacfbe6c21df0f45c74e6468f54 Mon Sep 17 00:00:00 2001 From: Tim Bradt Date: Mon, 22 Jul 2019 08:51:25 -0400 Subject: [PATCH 3/3] Make modifications in a `set!` function instead of `set` --- src/lens.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lens.jl b/src/lens.jl index 27eb236..c4792c2 100644 --- a/src/lens.jl +++ b/src/lens.jl @@ -224,12 +224,12 @@ Base.@propagate_inbounds function get(obj, l::IndexLens) getindex(obj, l.indices...) end -Base.@propagate_inbounds function set(obj::Tuple, l::IndexLens, val) +Base.@propagate_inbounds function set(obj, l::IndexLens, val) setindex(obj, val, l.indices...) end -Base.@propagate_inbounds function set(obj, l::IndexLens, val) +Base.@propagate_inbounds function set!(obj, l::IndexLens, val) setindex!(obj, val, l.indices...) end