-
Notifications
You must be signed in to change notification settings - Fork 152
Open
Description
StaticArrays does some piracy, at least in similar()
:
StaticArrays.jl/src/abstractarray.jl
Lines 141 to 146 in 07c1245
const HeterogeneousBaseShape = Union{Integer, Base.OneTo} | |
const HeterogeneousShape = Union{HeterogeneousBaseShape, SOneTo} | |
const HeterogeneousShapeTuple = Tuple{Vararg{HeterogeneousShape}} | |
similar(A::AbstractArray, ::Type{T}, shape::HeterogeneousShapeTuple) where {T} = similar(A, T, homogenize_shape(shape)) | |
similar(::Type{A}, shape::HeterogeneousShapeTuple) where {A<:AbstractArray} = similar(A, homogenize_shape(shape)) |
Here,
HeterogeneousShapeTuple = Tuple{Vararg{Union{Integer, Base.OneTo, SOneTo} }}
and it fits eg Tuple{}
, Tuple{Int}
, Tuple{Int, Int}
.
It's generally a good thing to avoid piracy in foundational packages. Maybe, also related to ambiguities like JuliaArrays/StructArrays.jl#279?..
Metadata
Metadata
Assignees
Labels
No labels