Skip to content

Commit 5eb088f

Browse files
fix: fix codegen of single-element SArray of SArray
1 parent 7465df4 commit 5eb088f

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/code.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -602,20 +602,20 @@ end
602602

603603
## SArray
604604
@inline function create_array(::Type{<:SArray}, ::Nothing, nd::Val, ::Val{dims}, elems...) where dims
605-
SArray{Tuple{dims...}}(elems...)
605+
SArray{Tuple{dims...}}(elems)
606606
end
607607

608608
@inline function create_array(::Type{<:SArray}, T, nd::Val, ::Val{dims}, elems...) where dims
609-
SArray{Tuple{dims...}, T}(elems...)
609+
SArray{Tuple{dims...}, T}(elems)
610610
end
611611

612612
## MArray
613613
@inline function create_array(::Type{<:MArray}, ::Nothing, nd::Val, ::Val{dims}, elems...) where dims
614-
MArray{Tuple{dims...}}(elems...)
614+
MArray{Tuple{dims...}}(elems)
615615
end
616616

617617
@inline function create_array(::Type{<:MArray}, T, nd::Val, ::Val{dims}, elems...) where dims
618-
MArray{Tuple{dims...}, T}(elems...)
618+
MArray{Tuple{dims...}, T}(elems)
619619
end
620620

621621
## We use a separate type for Sparse Arrays to sidestep the need for

test/code.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,3 +341,8 @@ end
341341
end
342342
@test eval(expr) == [3, 2, 1]
343343
end
344+
345+
@testset "`create_array` creating single-element SArray of SArray" begin
346+
val = Code.create_array(SArray, nothing, Val(1), Val((1,)), Code.create_array(SArray, nothing, Val(1), Val((1,)), 1.0))
347+
@test val == SA[SA[1.0]]
348+
end

0 commit comments

Comments
 (0)