Skip to content

Commit 70bd07f

Browse files
committed
Drop Travis, improve device(<:SubArray}
1 parent b39bd6a commit 70bd07f

File tree

3 files changed

+13
-40
lines changed

3 files changed

+13
-40
lines changed

.travis.yml

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/ArrayInterface.jl

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -567,13 +567,8 @@ device(::Type) = nothing
567567
device(::Type{<:Tuple}) = CPUIndex()
568568
# Relies on overloading for GPUArrays that have subtyped `StridedArray`.
569569
device(::Type{<:StridedArray}) = CPUPointer()
570-
function device(::Type{T}) where {T <: SubArray}
571-
if T <: StridedArray
572-
device(parent_type(T))
573-
else
574-
CPUIndex()
575-
end
576-
end
570+
device(::Type{<:SubArray{T,N,A,I}}) where {T,N,A,I<:Tuple{Vararg{Union{Integer,AbstractRange}}}} = device(A)
571+
device(::Type{<:SubArray}) = CPUIndex()
577572
function device(::Type{T}) where {T <: AbstractArray}
578573
P = parent_type(T)
579574
T === P ? CPUIndex() : device(P)

test/runtests.jl

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -267,16 +267,17 @@ Base.getindex(::DummyZeros{T}, inds...) where {T} = zero(T)
267267
A = zeros(3,4,5);
268268
D1 = view(A, 1:2:3, :, :) # first dimension is discontiguous
269269
D2 = view(A, :, 2:2:4, :) # first dimension is contiguous
270-
@test device(A) === ArrayInterface.CPUPointer()
271-
@test device((1,2,3)) === ArrayInterface.CPUIndex()
272-
@test device(PermutedDimsArray(A,(3,1,2))) === ArrayInterface.CPUPointer()
273-
@test device(view(A, 1, :, 2:4)) === ArrayInterface.CPUPointer()
274-
@test device(view(A, 1, :, 2:4)') === ArrayInterface.CPUPointer()
275-
@test device(view(A, 1, :, [2,3,4])) === ArrayInterface.CPUIndex()
276-
@test device(view(A, 1, :, [2,3,4])') === ArrayInterface.CPUIndex()
277-
@test device(@SArray(zeros(2,2,2))) === ArrayInterface.CPUIndex()
278-
@test device(@view(@SArray(zeros(2,2,2))[1,1:2,:])) === ArrayInterface.CPUIndex()
279-
@test device(@MArray(zeros(2,2,2))) === ArrayInterface.CPUPointer()
270+
@test @inferred(device(A)) === ArrayInterface.CPUPointer()
271+
@test @inferred(device((1,2,3))) === ArrayInterface.CPUIndex()
272+
@test @inferred(device(PermutedDimsArray(A,(3,1,2)))) === ArrayInterface.CPUPointer()
273+
@test @inferred(device(view(A, 1, :, 2:4))) === ArrayInterface.CPUPointer()
274+
@test @inferred(device(view(A, 1, :, 2:4)')) === ArrayInterface.CPUPointer()
275+
@test @inferred(device(view(PermutedDimsArray(A, (3,1,2)), 1, :, 2:4)')) === ArrayInterface.CPUPointer()
276+
@test @inferred(device(view(A, 1, :, [2,3,4]))) === ArrayInterface.CPUIndex()
277+
@test @inferred(device(view(A, 1, :, [2,3,4])')) === ArrayInterface.CPUIndex()
278+
@test @inferred(device(@SArray(zeros(2,2,2)))) === ArrayInterface.CPUIndex()
279+
@test @inferred(device(@view(@SArray(zeros(2,2,2))[1,1:2,:]))) === ArrayInterface.CPUIndex()
280+
@test @inferred(device(@MArray(zeros(2,2,2)))) === ArrayInterface.CPUPointer()
280281
@test isnothing(device("Hello, world!"))
281282

282283
@test @inferred(contiguous_axis(@SArray(zeros(2,2,2)))) === ArrayInterface.Contiguous(1)

0 commit comments

Comments
 (0)