Skip to content

Commit b9f5216

Browse files
authored
StandardIndices methods should be last (#1129)
1 parent fe0bda9 commit b9f5216

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

src/array/indexing.jl

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,6 @@ for f in (:getindex, :view, :dotview)
2525
Base.$f(parent(A), i)
2626
end
2727
@eval begin
28-
### Standard indices
29-
@propagate_inbounds Base.$f(A::AbstractBasicDimVector, I::CartesianIndex) =
30-
Base.$f(A, to_indices(A, (I,))...)
31-
@propagate_inbounds Base.$f(A::AbstractBasicDimArray, I::CartesianIndex) =
32-
Base.$f(A, to_indices(A, (I,))...)
33-
@eval @propagate_inbounds Base.$f(A::AbstractBasicDimArray, i1::IntegerOrCartesian, i2::IntegerOrCartesian, Is::IntegerOrCartesian...) =
34-
Base.$f(A, to_indices(A, (i1, i2, Is...))...)
35-
# 1D DimArrays dont need linear indexing
36-
@propagate_inbounds Base.$f(A::AbstractBasicDimVector, i::Union{Colon,AbstractArray{<:Integer}}) =
37-
rebuildsliced(Base.$f, A, (i,))
38-
@propagate_inbounds Base.$f(A::AbstractBasicDimVector, I::CartesianIndices) = rebuildsliced(Base.$f, A, (I,))
39-
@propagate_inbounds Base.$f(A::AbstractBasicDimArray, I::CartesianIndices) = rebuildsliced(Base.$f, A, (I,))
40-
@eval @propagate_inbounds Base.$f(A::AbstractBasicDimArray, i1::StandardIndices, i2::StandardIndices, Is::StandardIndices...) =
41-
rebuildsliced(Base.$f, A, to_indices(A, (i1, i2, Is...)))
42-
4328
### Selector/Interval indexing
4429
@propagate_inbounds Base.$f(A::AbstractBasicDimVector, i::SelectorOrInterval) =
4530
Base.$f(A, dims2indices(A, (i,))...)
@@ -93,6 +78,21 @@ for f in (:getindex, :view, :dotview)
9378
Dimensions._extradimswarn((d1, ds...))
9479
return rebuildsliced(Base.$f, A, ())
9580
end
81+
82+
### Standard indices
83+
@propagate_inbounds Base.$f(A::AbstractBasicDimVector, I::CartesianIndex) =
84+
Base.$f(A, to_indices(A, (I,))...)
85+
@propagate_inbounds Base.$f(A::AbstractBasicDimArray, I::CartesianIndex) =
86+
Base.$f(A, to_indices(A, (I,))...)
87+
@propagate_inbounds Base.$f(A::AbstractBasicDimArray, i1::IntegerOrCartesian, i2::IntegerOrCartesian, Is::IntegerOrCartesian...) =
88+
Base.$f(A, to_indices(A, (i1, i2, Is...))...)
89+
# 1D DimArrays dont need linear indexing
90+
@propagate_inbounds Base.$f(A::AbstractBasicDimVector, i::Union{Colon,AbstractArray{<:Integer}}) =
91+
rebuildsliced(Base.$f, A, (i,))
92+
@propagate_inbounds Base.$f(A::AbstractBasicDimVector, I::CartesianIndices) = rebuildsliced(Base.$f, A, (I,))
93+
@propagate_inbounds Base.$f(A::AbstractBasicDimArray, I::CartesianIndices) = rebuildsliced(Base.$f, A, (I,))
94+
@propagate_inbounds Base.$f(A::AbstractBasicDimArray, i1::StandardIndices, i2::StandardIndices, Is::StandardIndices...) =
95+
rebuildsliced(Base.$f, A, to_indices(A, (i1, i2, Is...)))
9696
end
9797

9898
##### AbstractDimArray only methods
@@ -231,4 +231,4 @@ Base.@assume_effects :foldable @inline _simplify_dim_indices() = ()
231231

232232
# We only own this to_indices dispatch for AbstractBasicDimArray
233233
Base.to_indices(A::AbstractBasicDimArray, inds, (r, args...)::Tuple{<:Type,Vararg}) =
234-
(Lookups._to_index(inds[1], r), to_indices(A, Base.tail(inds), args)...)
234+
(Lookups._to_index(inds[1], r), to_indices(A, Base.tail(inds), args)...)

0 commit comments

Comments
 (0)