FluxML / FluxML/OneHotArrays.jl

Ambiguity in `getindex`, and missing `==` definition?

Open
#28 4 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Julia
Stars
19
Forks
10
PR merge metrics
No merged PRs in 30d

Description

The following error showed up in #27:

```julia
julia> y1 = onehotbatch([1, 3, 0, 2], 0:9);

julia> y1 == y1
true

julia> using JLArrays

julia> y2 = onehotbatch([1, 3, 0, 2] |> jl, 0:9) # with #27
10×4 OneHotMatrix(::JLArray{UInt32, 1}) with eltype Bool:
⋅ ⋅ 1 ⋅
1 ⋅ ⋅ ⋅
⋅ ⋅ ⋅ 1
⋅ 1 ⋅ ⋅
⋅ ⋅ ⋅ ⋅
⋅ ⋅ ⋅ ⋅
⋅ ⋅ ⋅ ⋅
⋅ ⋅ ⋅ ⋅
⋅ ⋅ ⋅ ⋅
⋅ ⋅ ⋅ ⋅

julia> jl(y1) == y2
ERROR: MethodError: getindex(::OneHotMatrix{UInt32, JLArray{UInt32, 1}}, ::Int64, ::Int64) is ambiguous.

Candidates:
getindex(x::OneHotArray{<:Any, N, <:Any, <:GPUArraysCore.AbstractGPUArray}, i::Int64, I::Vararg{Any, N}) where N
@ OneHotArrays ~/.julia/dev/OneHotArrays/src/array.jl:71
getindex(x::OneHotArray{var"#s8", N, var"N+1", I} where {var"#s8", var"N+1", I<:Union{AbstractArray{var"#s8", N}, var"#s8"}}, i::Int64, I::Vararg{Int64, N}) where N
@ OneHotArrays ~/.julia/dev/OneHotArrays/src/array.jl:65
To resolve the ambiguity, try making one of the methods more specific, or adding a new method more specific than any of the existing applicable methods.

Stacktrace:
[1] _getindex
@ ./abstractarray.jl:1344 [inlined]
[2] getindex
@ ./abstractarray.jl:1294 [inlined]
[3] iterate
@ ./abstractarray.jl:1220 [inlined]
[4] iterate
@ ./abstractarray.jl:1218 [inlined]
[5] _zip_iterate_some
@ ./iterators.jl:428 [inlined]
[6] _zip_iterate_all
@ ./iterators.jl:420 [inlined]
[7] iterate
@ ./iterators.jl:410 [inlined]
[8] ==(A::OneHotMatrix{UInt32, JLArray{UInt32, 1}}, B::OneHotMatrix{UInt32, JLArray{UInt32, 1}})
@ Base ./abstractarray.jl:2912
[9] top-level scope
@ REPL[34]:1
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.