@@ -14,7 +14,6 @@ include("utils.jl")
1414
1515# Technically we know the length of CartesianIndices but we need to convert it first, so here we
1616# don't put it in OffsetAxisKnownLength.
17- # TODO : add CartesianIndices to OffsetAxisKnownLength
1817const OffsetAxisKnownLength = Union{Integer, AbstractUnitRange, IdOffsetRange}
1918const OffsetAxis = Union{OffsetAxisKnownLength, CartesianIndices, Colon}
2019const ArrayInitializer = Union{UndefInitializer, Missing, Nothing}
@@ -115,8 +114,7 @@ for FT in (:OffsetArray, :OffsetVector, :OffsetMatrix)
115114 indsN = _uncolonindices (A, _expandCartesianIndices (inds))
116115 $ FT (A, indsN)
117116 end
118- @eval $ FT (A:: AbstractArray{T} , inds:: Vararg{OffsetAxis,N} ) where {T, N} = $ FT (A, inds)
119- @eval $ FT (A:: AbstractArray , inds:: CartesianIndices ) = $ FT (A, convert (Tuple{Vararg{AbstractUnitRange{Int}}}, inds))
117+ @eval $ FT (A:: AbstractArray{T} , inds... ) where {T, N} = $ FT (A, inds)
120118end
121119
122120# array initialization
@@ -130,15 +128,15 @@ function OffsetArray{T, N}(init::ArrayInitializer, inds::NTuple{NT, Union{Offset
130128 length (indsN) == N || throw (DimensionMismatch (" The number of offsets $(length (indsN)) should equal ndims(A) = $N " ))
131129 OffsetArray {T, N} (init, indsN)
132130end
133- OffsetArray {T,N} (init:: ArrayInitializer , inds:: Union{OffsetAxisKnownLength, CartesianIndices} ...) where {T,N} = OffsetArray {T,N} (init, inds)
131+ OffsetArray {T,N} (init:: ArrayInitializer , inds... ) where {T,N} = OffsetArray {T,N} (init, inds)
134132
135133OffsetArray {T} (init:: ArrayInitializer , inds:: NTuple{N, OffsetAxisKnownLength} ) where {T,N} = OffsetArray {T,N} (init, inds)
136134function OffsetArray {T} (init:: ArrayInitializer , inds:: NTuple{N, Union{OffsetAxisKnownLength, CartesianIndices}} ) where {T, N}
137135 # N is probably not the actual dimension of the array; CartesianIndices might contain multiple dimensions
138136 indsN = _expandCartesianIndices (inds)
139137 OffsetArray {T, length(indsN)} (init, indsN)
140138end
141- OffsetArray {T} (init:: ArrayInitializer , inds:: Union{OffsetAxisKnownLength, CartesianIndices} ...) where {T} = OffsetArray {T} (init, inds)
139+ OffsetArray {T} (init:: ArrayInitializer , inds... ) where {T} = OffsetArray {T} (init, inds)
142140
143141Base. IndexStyle (:: Type{OA} ) where {OA<: OffsetArray } = IndexStyle (parenttype (OA))
144142parenttype (:: Type{OffsetArray{T,N,AA}} ) where {T,N,AA} = AA
0 commit comments