Skip to content

Commit 1f77ef3

Browse files
committed
added tests for begin indexing
1 parent 7698a0f commit 1f77ef3

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

test/dynamiclens_begin.jl

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
l = @lens _[begin]
2+
@test l isa Setfield.DynamicIndexLens
3+
obj = (1,2,3)
4+
@test get(obj, l) == 1
5+
@test set(obj, l, true) == (true,2,3)
6+
7+
l = @lens _[2*begin]
8+
@test l isa Setfield.DynamicIndexLens
9+
obj = (1,2,3)
10+
@test get(obj, l) == 2
11+
@test set(obj, l, true) == (1,true,3)
12+
13+
one = 1
14+
plustwo(x) = x + 2
15+
l = @lens _.a[plustwo(begin) - one].b
16+
obj = (a=(1, (a=10, b=20), 3), b=4)
17+
@test get(obj, l) == 20
18+
@test set(obj, l, true) == (a=(1, (a=10, b=true), 3), b=4)

test/test_core.jl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,12 @@ end
281281
obj = (a=(1, (a=10, b=20), 3), b=4)
282282
@test get(obj, l) == 20
283283
@test set(obj, l, true) == (a=(1, (a=10, b=true), 3), b=4)
284+
285+
if Setfield.HAS_BEGIN_INDEXING
286+
# Need to keep this in a separate file since `begin` won't parse
287+
# on older Julia versions.
288+
include("dynamiclens_begin.jl")
289+
end
284290
end
285291

286292
@testset "StaticNumbers" begin

0 commit comments

Comments
 (0)