Skip to content

Commit

Permalink
Fix ambiguities in DenseAxisArray
Browse files Browse the repository at this point in the history
  • Loading branch information
odow committed Jan 5, 2023
1 parent a9e50ec commit 49cb6fc
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions src/Containers/DenseAxisArray.jl
Original file line number Diff line number Diff line change
Expand Up @@ -356,7 +356,16 @@ Base.getindex(A::DenseAxisArray, idx::CartesianIndex) = A.data[idx]
function Base.setindex!(A::DenseAxisArray{T,N}, v, idx...) where {T,N}
return A.data[Base.to_index(A, idx)...] = v
end
Base.setindex!(A::DenseAxisArray, v, idx::CartesianIndex) = A.data[idx] = v

function Base.setindex!(
A::DenseAxisArray{T},
v::T,
idx::CartesianIndex,
) where {T}
A.data[idx] = v
return
end

function Base.IndexStyle(::Type{DenseAxisArray{T,N,Ax}}) where {T,N,Ax}
return IndexAnyCartesian()
end
Expand Down Expand Up @@ -387,7 +396,11 @@ end
Base.getindex(k::DenseAxisArrayKey, args...) = getindex(k.I, args...)
Base.getindex(a::DenseAxisArray, k::DenseAxisArrayKey) = a[k.I...]

function Base.setindex!(A::DenseAxisArray, value, key::DenseAxisArrayKey)
function Base.setindex!(
A::DenseAxisArray{T},
value::T,
key::DenseAxisArrayKey,
) where {T}
return setindex!(A, value, key.I...)
end

Expand Down Expand Up @@ -592,9 +605,9 @@ Base.repeat(x::DenseAxisArray; kwargs...) = repeat(x.data; kwargs...)
### view
###

_get_subaxis(::Colon, b) = b
_get_subaxis(::Colon, b::AbstractVector) = b

function _get_subaxis(a::AbstractVector, b)
function _get_subaxis(a::AbstractVector, b::AbstractVector)
for ai in a
if !(ai in b)
throw(KeyError(ai))
Expand Down

0 comments on commit 49cb6fc

Please sign in to comment.