Skip to content

Commit c1ead9f

Browse files
author
Andy Ferris
committed
Fix insert, test setindex
1 parent 695a38e commit c1ead9f

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/deque.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ end
2020

2121
@generated function insert(vec::StaticVector, index, x)
2222
newtype = similar_type(vec, (length(vec) + 1 ,))
23-
exprs = [:(ifelse($i < index, vec[$i], ifelse($i == index, x, vec[$i-1]))) for i = 1:length(vec) + 1]
23+
exprs = [(i == 1 ? :(ifelse($i < index, vec[$i], x)) :
24+
i == length(vec)+1 ? :(ifelse($i == index, x, vec[$i-1])) :
25+
:(ifelse($i < index, vec[$i], ifelse($i == index, x, vec[$i-1])))) for i = 1:length(vec) + 1]
2426
return quote
2527
$(Expr(:meta, :inline))
2628
@boundscheck if (index < 1 || index > $(length(vec)+1))
@@ -50,7 +52,7 @@ end
5052

5153
@generated function deleteat(vec::StaticVector, index)
5254
newtype = similar_type(vec, (length(vec) - 1 ,))
53-
exprs = [:(ifelse($i < index, vec[$i], vec[$i+1])) for i = 1:length(vec) + 1]
55+
exprs = [:(ifelse($i < index, vec[$i], vec[$i+1])) for i = 1:length(vec) - 1]
5456
return quote
5557
$(Expr(:meta, :inline))
5658
@boundscheck if (index < 1 || index > $(length(vec)+1))

test/deque.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,6 @@
99

1010
@test (@inferred insert(v, 2, -2)) === @SVector [1, -2, 2, 3]
1111
@test (@inferred deleteat(v, 2)) === @SVector [1, 3]
12+
13+
@test setindex(v, -2, 2) === @SVector [1, -2, 3]
1214
end

0 commit comments

Comments
 (0)