Skip to content

Commit 5e03fe7

Browse files
authored
Fix insert to 0-length SVector (#1004)
1 parent cd8b771 commit 5e03fe7

File tree

3 files changed

+5
-2
lines changed

3 files changed

+5
-2
lines changed

Project.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "StaticArrays"
22
uuid = "90137ffa-7385-5640-81b9-e52037218182"
3-
version = "1.4.0"
3+
version = "1.4.1"
44

55
[deps]
66
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"

src/deque.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ julia> insert(@SVector[6, 5, 4, 2, 1], 4, 3)
6969
@propagate_inbounds insert(vec::StaticVector, index, x) = _insert(Size(vec), vec, index, x)
7070
@generated function _insert(::Size{s}, vec::StaticVector, index, x) where {s}
7171
newlen = s[1] + 1
72-
exprs = [(i == 1 ? :(ifelse($i < index, vec[$i], x)) :
72+
exprs = [(i == 1 ? :(if $i < index; vec[$i] else x; end) :
7373
i == newlen ? :(ifelse($i == index, x, vec[$i-1])) :
7474
:(ifelse($i < index, vec[$i], ifelse($i == index, x, vec[$i-1])))) for i = 1:newlen]
7575
return quote

test/deque.jl

+3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ using StaticArrays, Test
1414

1515
@test @inferred(setindex(v, -2, 2)) === @SVector [1, -2, 3]
1616

17+
# issue https://github.com/JuliaArrays/StaticArrays.jl/issues/1003
18+
@test @inferred(insert(SVector{0,Int}(), 1, 10)) === @SVector [10]
19+
1720
@test_throws BoundsError insert(v, -2, 2)
1821
@test_throws BoundsError deleteat(v, -2)
1922
@test_throws BoundsError setindex(v, 2, -2)

0 commit comments

Comments
 (0)