You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Chris Rackauckas
Sep 7th at 7:48 PM
(construct(::Type{T}, nodes::Tuple{Vararg{<:AbstractMultiScaleArray}}, args...)
where {T <: AbstractMultiScaleArray}) = __construct(T, nodes, eltype(T)[], args...)
(construct(::Type{T}, nodes::Tuple{Vararg{<:AbstractMultiScaleArray}}, values, args...)
where {T <: AbstractMultiScaleArray}) = __construct(T, nodes, values, args...)
gives:
ERROR: LoadError: Wrapping Vararg directly in UnionAll is deprecated (wrap the tuple instead).
You may need to write f(x::Vararg{T}) rather than f(x::Vararg{<:T}) or f(x::Vararg{T}) where T instead of f(x::Vararg{T} where T).
Stacktrace:
How do I handle this case?
8 replies
Oscar Smith Sep 7th at 7:55 PM
Vararg{AbstractMultiScaleArray} 7:57
julia> Tuple{Int} <: Tuple{Vararg{Integer}}
true
Chris Rackauckas
Sep 7th at 9:02 PM
ERROR: LoadError: ArgumentError: Vararg on non-final argument in method definition for construct at /home/runner/work/MultiScaleArrays.jl/MultiScaleArrays.jl/src/shape_construction.jl:53
Oscar Smith Sep 7th at 9:06 PM
wait, this signature was ever valid? 9:07
how is it supposed to choose between nodes and args? 9:07 @jeffbezanson
look at this horribleness
Saved for later • Due 1 month ago
Jeff Bezanson
Sep 10th at 3:57 PM
The error message is unhelpful here since it's showing a random example rather than what you actually did. In this case you'd need nodes::Tuple{Vararg{T<:S}} where T, just put the where outside the tuple instead of only outside the vararg.
Chris Rackauckas
Sep 7th at 7:48 PM
(construct(::Type{T}, nodes::Tuple{Vararg{<:AbstractMultiScaleArray}}, args...)
where {T <: AbstractMultiScaleArray}) = __construct(T, nodes, eltype(T)[], args...)
(construct(::Type{T}, nodes::Tuple{Vararg{<:AbstractMultiScaleArray}}, values, args...)
where {T <: AbstractMultiScaleArray}) = __construct(T, nodes, values, args...)
gives:
ERROR: LoadError: Wrapping
Vararg
directly in UnionAll is deprecated (wrap the tuple instead).You may need to write
f(x::Vararg{T})
rather thanf(x::Vararg{<:T})
orf(x::Vararg{T}) where T
instead off(x::Vararg{T} where T)
.Stacktrace:
How do I handle this case?
8 replies
Oscar Smith
Sep 7th at 7:55 PM
Vararg{AbstractMultiScaleArray}
7:57
julia> Tuple{Int} <: Tuple{Vararg{Integer}}
true
Chris Rackauckas
Sep 7th at 9:02 PM
ERROR: LoadError: ArgumentError: Vararg on non-final argument in method definition for construct at /home/runner/work/MultiScaleArrays.jl/MultiScaleArrays.jl/src/shape_construction.jl:53
Oscar Smith
Sep 7th at 9:06 PM
wait, this signature was ever valid?
9:07
how is it supposed to choose between nodes and args?
9:07
@jeffbezanson
look at this horribleness
Saved for later • Due 1 month ago
Jeff Bezanson
Sep 10th at 3:57 PM
The error message is unhelpful here since it's showing a random example rather than what you actually did. In this case you'd need nodes::Tuple{Vararg{T<:S}} where T, just put the where outside the tuple instead of only outside the vararg.
Chris Rackauckas
Today at 4:46 AM
@Oscar Smith
can you help unblock this? I don't quite understand this.
The text was updated successfully, but these errors were encountered: