Skip to content

Commit 931ec33

Browse files
authored
bugfix and improve isdisk (#221)
* tweak isdisk and test * Update src/diskarray.jl
1 parent 1886884 commit 931ec33

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

src/diskarray.jl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@ abstract type AbstractDiskArray{T,N} <: AbstractArray{T,N} end
1313
Return `true` if `a` is a `AbstractDiskArray` or follows
1414
the DiskArrays.jl interface via macros. Otherwise `false`.
1515
"""
16-
isdisk(a::AbstractDiskArray) = true
17-
isdisk(a::AbstractArray) = false
16+
isdisk(a::AbstractArray) = isdisk(typeof(a))
17+
isdisk(::Type{<:AbstractDiskArray}) = true
18+
isdisk(::Type{<:AbstractArray}) = false
1819

1920
"""
2021
readblock!(A::AbstractDiskArray, A_ret, r::AbstractUnitRange...)
@@ -376,7 +377,7 @@ include("chunks.jl")
376377
macro implement_getindex(t)
377378
t = esc(t)
378379
quote
379-
isdisk(a::$t) = true
380+
DiskArrays.isdisk(::Type{<:$t}) = true
380381
Base.getindex(a::$t, i...) = getindex_disk(a, i...)
381382
@inline Base.getindex(a::$t, i::ChunkIndex{<:Any,OneBasedChunks}) =
382383
a[eachchunk(a)[i.I]...]

test/runtests.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -890,6 +890,7 @@ struct TestArray{T,N} <: AbstractArray{T,N} end
890890
DiskArrays.@implement_permutedims TestArray
891891
DiskArrays.@implement_subarray TestArray
892892
DiskArrays.@implement_diskarray TestArray
893+
@test DiskArrays.isdisk(TestArray) == true
893894
end
894895

895896
# issue #123

0 commit comments

Comments
 (0)