Skip to content

Commit ad711a6

Browse files
authored
Merge pull request #70 from Tokazama/master
Change the indexing pipeline
2 parents 8100a84 + a5b7471 commit ad711a6

File tree

6 files changed

+738
-9
lines changed

6 files changed

+738
-9
lines changed

src/ArrayInterface.jl

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ using Requires
44
using LinearAlgebra
55
using SparseArrays
66

7-
using Base: OneTo, @propagate_inbounds
7+
using Base: @propagate_inbounds, tail, OneTo, LogicalIndex, Slice
88

99
Base.@pure __parameterless_type(T) = Base.typename(T).wrapper
1010
parameterless_type(x) = parameterless_type(typeof(x))
@@ -23,7 +23,7 @@ parent_type(::Type{Transpose{T,S}}) where {T,S} = S
2323
parent_type(::Type{Symmetric{T,S}}) where {T,S} = S
2424
parent_type(::Type{<:LinearAlgebra.AbstractTriangular{T,S}}) where {T,S} = S
2525
parent_type(::Type{<:PermutedDimsArray{T,N,I1,I2,A}}) where {T,N,I1,I2,A} = A
26-
parent_type(::Type{Base.Slice{T}}) where {T} = T
26+
parent_type(::Type{Slice{T}}) where {T} = T
2727
parent_type(::Type{T}) where {T} = T
2828

2929
"""
@@ -34,7 +34,7 @@ Otherwise, return `nothing`.
3434
"""
3535
known_length(x) = known_length(typeof(x))
3636
known_length(::Type{<:NamedTuple{L}}) where {L} = length(L)
37-
known_length(::Type{T}) where {T<:Base.Slice} = known_length(parent_type(T))
37+
known_length(::Type{T}) where {T<:Slice} = known_length(parent_type(T))
3838
known_length(::Type{<:Tuple{Vararg{Any,N}}}) where {N} = N
3939
known_length(::Type{<:Number}) = 1
4040
function known_length(::Type{T}) where {T}
@@ -628,7 +628,7 @@ end
628628
if i === 1
629629
return (item, x...)
630630
else
631-
return (first(x), unsafe_insert(Base.tail(x), i - 1, item)...)
631+
return (first(x), unsafe_insert(tail(x), i - 1, item)...)
632632
end
633633
end
634634

@@ -690,11 +690,11 @@ end
690690
@inline unsafe_deleteat(x::Tuple{T1,T2}, i::Integer) where {T1,T2} = isone(i) ? (x[2],) : (x[1],)
691691
@inline function unsafe_deleteat(x::Tuple, i::Integer)
692692
if i === one(i)
693-
return Base.tail(x)
693+
return tail(x)
694694
elseif i == length(x)
695695
return Base.front(x)
696696
else
697-
return (first(x), unsafe_deleteat(Base.tail(x), i - one(i))...)
697+
return (first(x), unsafe_deleteat(tail(x), i - one(i))...)
698698
end
699699
end
700700

@@ -886,6 +886,7 @@ end
886886

887887
include("static.jl")
888888
include("ranges.jl")
889+
include("indexing.jl")
889890
include("stridelayout.jl")
890891

891892
end

0 commit comments

Comments
 (0)