Skip to content

Commit 3fed14b

Browse files
authored
Merge pull request #234 from martinholters/mh/workaround_22458
Make `index_sizes` inferable on Julia 0.7
2 parents 3dacbba + ec407a9 commit 3fed14b

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

src/indexing.jl

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,13 @@ end
5454
## Indexing utilities ##
5555
#########################
5656

57-
@pure tail(::Type{Size{S}}) where {S} = Size{Base.tail(S)}
58-
@inline tail(::S) where {S<:Size} = tail(S)()
59-
@inline tail(s::Size{()}) = s
60-
61-
@inline index_sizes(s::Size) = ()
62-
@inline index_sizes(s::Size, ::Int, inds...) = (Size(), index_sizes(tail(s), inds...)...)
63-
@inline index_sizes(s::Size, a::StaticArray, inds...) = (Size(a), index_sizes(tail(s), inds...)...)
64-
@inline index_sizes(s::Size, ::Colon, inds...) = (Size(s[1]), index_sizes(tail(s), inds...)...)
57+
@pure unpack_size(::Type{Size{S}}) where {S} = map(Size, S)
58+
59+
@inline index_size(::Size, ::Int) = Size()
60+
@inline index_size(::Size, a::StaticArray) = Size(a)
61+
@inline index_size(s::Size, ::Colon) = s
62+
63+
@inline index_sizes(::S, inds...) where {S<:Size} = map(index_size, unpack_size(S), inds)
6564

6665
@inline index_sizes() = ()
6766
@inline index_sizes(::Int, inds...) = (Size(), index_sizes(inds...)...)

0 commit comments

Comments
 (0)