@@ -26,9 +26,16 @@ const SA_F64 = SA{Float64}
2626@inline similar_type (:: Type{SA} , :: Size{S} ) where {S} = SArray{Tuple{S... }}
2727@inline similar_type (:: Type{SA{T}} , :: Size{S} ) where {T,S} = SArray{Tuple{S... }, T}
2828
29- @inline Base. getindex (sa:: Type{<:SA} , xs... ) = similar_type (sa, Size (length (xs)))(xs)
30- @inline Base. typed_vcat (sa:: Type{<:SA} , xs:: Number... ) = similar_type (sa, Size (length (xs)))(xs)
31- @inline Base. typed_hcat (sa:: Type{<:SA} , xs:: Number... ) = similar_type (sa, Size (1 ,length (xs)))(xs)
29+ # These definitions are duplicated to avoid matching `sa === Union{}` in the
30+ # neater-looking alternative `sa::Type{<:SA}`.
31+ @inline Base. getindex (sa:: Type{SA} , xs... ) = similar_type (sa, Size (length (xs)))(xs)
32+ @inline Base. getindex (sa:: Type{SA{T}} , xs... ) where T = similar_type (sa, Size (length (xs)))(xs)
33+
34+ @inline Base. typed_vcat (sa:: Type{SA} , xs:: Number... ) = similar_type (sa, Size (length (xs)))(xs)
35+ @inline Base. typed_vcat (sa:: Type{SA{T}} , xs:: Number... ) where T = similar_type (sa, Size (length (xs)))(xs)
36+
37+ @inline Base. typed_hcat (sa:: Type{SA} , xs:: Number... ) = similar_type (sa, Size (1 ,length (xs)))(xs)
38+ @inline Base. typed_hcat (sa:: Type{SA{T}} , xs:: Number... ) where T = similar_type (sa, Size (1 ,length (xs)))(xs)
3239
3340Base. @pure function _SA_hvcat_transposed_size (rows)
3441 M = rows[1 ]
@@ -40,7 +47,7 @@ Base.@pure function _SA_hvcat_transposed_size(rows)
4047 Size (M, length (rows))
4148end
4249
43- @inline function Base . typed_hvcat (sa:: Type{<:SA} , rows:: Dims , xs:: Number... )
50+ @inline function _SA_typed_hvcat (sa, rows, xs)
4451 msize = _SA_hvcat_transposed_size (rows)
4552 if msize === nothing
4653 throw (ArgumentError (" SA[...] matrix rows of length $rows are inconsistent" ))
4956 transpose (similar_type (sa, msize)(xs))
5057end
5158
59+ @inline Base. typed_hvcat (sa:: Type{SA} , rows:: Dims , xs:: Number... ) = _SA_typed_hvcat (sa, rows, xs)
60+ @inline Base. typed_hvcat (sa:: Type{SA{T}} , rows:: Dims , xs:: Number... ) where T = _SA_typed_hvcat (sa, rows, xs)
61+
0 commit comments