Skip to content

Commit 74fdfa4

Browse files
authored
Fix ambiguities (#228)
* fix ambiguities * cleanup * cleanup
1 parent c1873df commit 74fdfa4

File tree

5 files changed

+21
-25
lines changed

5 files changed

+21
-25
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
fail-fast: false
1616
matrix:
1717
version:
18-
- '1.9'
18+
- '1.10'
1919
- '1' # Leave this line unchanged. '1' will automatically expand to the latest stable 1.x release of Julia.
2020
- 'nightly'
2121
os:
@@ -45,4 +45,4 @@ jobs:
4545
- uses: julia-actions/julia-processcoverage@v1
4646
- uses: codecov/codecov-action@v1
4747
with:
48-
file: lcov.info
48+
file: lcov.info

src/array.jl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
macro implement_array_methods(t)
32
t = esc(t)
43
quote
@@ -23,8 +22,8 @@ macro implement_array_methods(t)
2322
return $_copyto!(dest, Rdest, src, Rsrc)
2423
end
2524
# For ambiguity
26-
copyto!(dest::PermutedDimsArray, src::$t) = DiskArrays._copyto!(dest, src)
27-
function copyto!(dest::PermutedDimsArray{T,N}, src::$t{T,N}) where {T,N}
25+
Base.copyto!(dest::PermutedDimsArray, src::$t) = DiskArrays._copyto!(dest, src)
26+
function Base.copyto!(dest::PermutedDimsArray{T,N}, src::$t{T,N}) where {T,N}
2827
return $_copyto!(dest, src)
2928
end
3029

src/generator.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,5 +76,6 @@ macro implement_generator(t)
7676
t = esc(t)
7777
quote
7878
Base.Generator(f, A::$t) = $DiskGenerator(f, A)
79+
Base.Generator(::Type{T}, A::$t) where T = $DiskGenerator(T, A)
7980
end
8081
end

src/zip.jl

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,6 @@
22
struct DiskZip{Is<:Tuple}
33
is::Is
44
end
5-
Base.iterate(dz::DiskZip) = Base.iterate(Iterators.Zip(dz.is))
6-
Base.iterate(dz::DiskZip, i) = Base.iterate(Iterators.Zip(dz.is), i)
7-
Base.first(dz::DiskZip) = Base.first(Iterators.Zip(dz.is))
8-
Base.last(dz::DiskZip) = Base.last(Iterators.Zip(dz.is))
9-
Base.length(dz::DiskZip) = Base.length(Iterators.Zip(dz.is))
10-
Base.size(dz::DiskZip) = Base.size(Iterators.Zip(dz.is))
11-
function Base.IteratorSize(::Type{DiskZip{Is}}) where {Is<:Tuple}
12-
return Base.IteratorSize(Iterators.Zip{Is})
13-
end
14-
function Base.IteratorEltype(::Type{DiskZip{Is}}) where {Is<:Tuple}
15-
return Base.IteratorEltype(Iterators.Zip{Is})
16-
end
17-
18-
# Rechunk using the chunks of the first Chunked array
19-
# This forces the iteration order to be the same for
20-
# all arrays.
21-
225
function DiskZip(As::AbstractArray...)
236
map(As) do A
247
size(A) == size(first(As)) ||
@@ -41,7 +24,21 @@ function DiskZip(As::AbstractArray...)
4124
return DiskZip(rechunked)
4225
end
4326
end
44-
# # For now we only allow zip on exact same-sized arrays
27+
28+
Base.iterate(dz::DiskZip) = Base.iterate(Iterators.Zip(dz.is))
29+
Base.iterate(dz::DiskZip, i) = Base.iterate(Iterators.Zip(dz.is), i)
30+
Base.first(dz::DiskZip) = Base.first(Iterators.Zip(dz.is))
31+
Base.last(dz::DiskZip) = Base.last(Iterators.Zip(dz.is))
32+
Base.length(dz::DiskZip) = Base.length(Iterators.Zip(dz.is))
33+
Base.size(dz::DiskZip) = Base.size(Iterators.Zip(dz.is))
34+
function Base.IteratorSize(::Type{DiskZip{Is}}) where {Is<:Tuple}
35+
return Base.IteratorSize(Iterators.Zip{Is})
36+
end
37+
function Base.IteratorEltype(::Type{DiskZip{Is}}) where {Is<:Tuple}
38+
return Base.IteratorEltype(Iterators.Zip{Is})
39+
end
40+
41+
# For now we only allow zip on exact same-sized arrays
4542

4643
# Collect zipped disk arrays in the right order
4744
function Base.collect(dz::DiskZip)

test/runtests.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ using Aqua
1010
# JET.report_package(DiskArrays)
1111

1212
if VERSION >= v"1.9.0"
13-
# These dont resolve even though the suggested methods exist
14-
# Aqua.test_ambiguities([DiskArrays, Base, Core])
13+
Aqua.test_ambiguities([DiskArrays, Base, Core])
1514
Aqua.test_unbound_args(DiskArrays)
1615
Aqua.test_stale_deps(DiskArrays)
1716
Aqua.test_undefined_exports(DiskArrays)

0 commit comments

Comments
 (0)