@@ -17,16 +17,17 @@ OffsetArray(A::AbstractArray{T,N}, offsets::NTuple{N,Int}) where {T,N} =
1717OffsetArray (A:: AbstractArray{T,N} , offsets:: Vararg{Int,N} ) where {T,N} =
1818 OffsetArray (A, offsets)
1919
20- OffsetArray {T,N} (:: UndefInitializer , inds:: Indices{N} ) where {T,N} =
21- OffsetArray {T,N,Array{T,N}} (Array {T,N} (undef, map (indexlength, inds)), map (indexoffset, inds))
22- OffsetArray {T} (:: UndefInitializer , inds:: Indices{N} ) where {T,N} = OffsetArray {T,N} (undef, inds)
23- OffsetArray {T,N} (:: UndefInitializer , inds:: Vararg{AbstractUnitRange,N} ) where {T,N} = OffsetArray {T,N} (undef, inds)
24- OffsetArray {T} (:: UndefInitializer , inds:: Vararg{AbstractUnitRange,N} ) where {T,N} = OffsetArray {T,N} (undef, inds)
20+ const ArrayInitializer = Union{UndefInitializer, Missing, Nothing}
21+ OffsetArray {T,N} (init:: ArrayInitializer , inds:: Indices{N} ) where {T,N} =
22+ OffsetArray {T,N,Array{T,N}} (Array {T,N} (init, map (indexlength, inds)), map (indexoffset, inds))
23+ OffsetArray {T} (init:: ArrayInitializer , inds:: Indices{N} ) where {T,N} = OffsetArray {T,N} (init, inds)
24+ OffsetArray {T,N} (init:: ArrayInitializer , inds:: Vararg{AbstractUnitRange,N} ) where {T,N} = OffsetArray {T,N} (init, inds)
25+ OffsetArray {T} (init:: ArrayInitializer , inds:: Vararg{AbstractUnitRange,N} ) where {T,N} = OffsetArray {T,N} (init, inds)
2526OffsetArray (A:: AbstractArray{T,0} ) where {T} = OffsetArray {T,0,typeof(A)} (A, ())
2627
2728# OffsetVector constructors
2829OffsetVector (A:: AbstractVector , offset) = OffsetArray (A, offset)
29- OffsetVector {T} (:: UndefInitializer , inds:: AbstractUnitRange ) where {T} = OffsetArray {T} (undef , inds)
30+ OffsetVector {T} (init :: ArrayInitializer , inds:: AbstractUnitRange ) where {T} = OffsetArray {T} (init , inds)
3031
3132# deprecated constructors
3233using Base: @deprecate
0 commit comments