Skip to content

Commit 859539a

Browse files
committed
Define size more explicitly, helping the compiler
1 parent 314f114 commit 859539a

File tree

3 files changed

+6
-0
lines changed

3 files changed

+6
-0
lines changed

src/MArray.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ type MArray{Size, T, N, L} <: StaticArray{T, N}
3434
new{Size,T,N,L}()
3535
end
3636
end
37+
size(t::MArray{S}) where S = tuple(S.parameters...)
38+
size(t::MArray{S},d::Int) where S = S.parameters[d]
3739

3840
@generated function check_marray_parameters{Size,T,N,L}(::Type{Val{Size}}, ::Type{T}, ::Type{Val{N}}, ::Type{Val{L}})
3941
if !(isa(Size, Tuple{Vararg{Int}}))

src/SArray.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ immutable SArray{Size, T, N, L} <: StaticArray{T, N}
2828
new{Size,T,N,L}(convert_ntuple(T, x))
2929
end
3030
end
31+
size(t::SArray{S}) where S = tuple(S.parameters...)
32+
size(t::SArray{S},d::Int) where S = S.parameters[d]
3133

3234
@generated function check_sarray_parameters{Size,T,N,L}(::Type{Val{Size}}, ::Type{T}, ::Type{Val{N}}, ::Type{Val{L}})
3335
if !(isa(Size, Tuple{Vararg{Int}}))

src/SizedArray.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ immutable SizedArray{S,T,N,M} <: StaticArray{T,N}
2323
new{S,T,N,M}(Array{T,M}(S))
2424
end
2525
end
26+
size(t::SizedArray{S}) where S = S
27+
size(t::SizedArray{S},d::Int) where S = S[d]
2628

2729
@inline (::Type{SizedArray{S,T,N}}){S,T,N,M}(a::Array{T,M}) = SizedArray{S,T,N,M}(a)
2830
@inline (::Type{SizedArray{S,T}}){S,T,M}(a::Array{T,M}) = SizedArray{S,T,_ndims(S),M}(a)

0 commit comments

Comments
 (0)