diff --git a/src/MultiScaleArrays.jl b/src/MultiScaleArrays.jl index 102dced..e1daa50 100644 --- a/src/MultiScaleArrays.jl +++ b/src/MultiScaleArrays.jl @@ -134,7 +134,7 @@ struct Organ{B <: Number, P} <: AbstractMultiScaleArrayLeaf{B} params::P end -struct Plant{B, S, N <: Tuple{Vararg{<:Organ{<:Number}}}} <: AbstractMultiScaleArray{B} +struct Plant{B, S, N <: Tuple{Vararg{Organ{<:Number}}}} <: AbstractMultiScaleArray{B} nodes::N values::Vector{B} end_idxs::Vector{Int} @@ -147,7 +147,7 @@ struct Community{B, N <: Tuple{Vararg{<:Plant{<:Number}}}} <: AbstractMultiScale end_idxs::Vector{Int} end -mutable struct Scenario{B, N <: Tuple{Vararg{<:Community{<:Number}}}} <: +mutable struct Scenario{B, N <: Tuple{Vararg{Community{<:Number}}}} <: AbstractMultiScaleArrayHead{B} nodes::N values::Vector{B} diff --git a/src/shape_construction.jl b/src/shape_construction.jl index 11464d6..30ba788 100644 --- a/src/shape_construction.jl +++ b/src/shape_construction.jl @@ -50,10 +50,10 @@ where {T <: AbstractMultiScaleArray}) = __construct(T, nodes, eltype(T)[], args. (construct(::Type{T}, nodes::AbstractVector{<:AbstractMultiScaleArray}, values, args...) where {T <: AbstractMultiScaleArray}) = __construct(T, nodes, values, args...) -(construct(::Type{T}, nodes::Tuple{Vararg{<:AbstractMultiScaleArray}}, args...) +(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...) +(construct(::Type{T}, nodes::Tuple{Vararg{AbstractMultiScaleArray}}, values, args...) where {T <: AbstractMultiScaleArray}) = __construct(T, nodes, values, args...) function vcat(m1::AbstractMultiScaleArray, m2::AbstractMultiScaleArray) diff --git a/test/tuple_nodes.jl b/test/tuple_nodes.jl index c7d96a1..8698c77 100644 --- a/test/tuple_nodes.jl +++ b/test/tuple_nodes.jl @@ -14,20 +14,20 @@ struct Organ{B <: Number, P} <: AbstractMultiScaleArrayLeaf{B} params::P end -struct Plant{B, S, N <: Tuple{Vararg{<:Organ{<:Number}}}} <: AbstractMultiScaleArray{B} +struct Plant{B, S, N <: Tuple{Vararg{Organ{<:Number}}}} <: AbstractMultiScaleArray{B} nodes::N values::Vector{B} end_idxs::Vector{Int} settings::S end -struct Community{B, N <: Tuple{Vararg{<:Plant{<:Number}}}} <: AbstractMultiScaleArray{B} +struct Community{B, N <: Tuple{Vararg{Plant{<:Number}}}} <: AbstractMultiScaleArray{B} nodes::N values::Vector{B} end_idxs::Vector{Int} end -mutable struct Scenario{B, N <: Tuple{Vararg{<:Community{<:Number}}}} <: +mutable struct Scenario{B, N <: Tuple{Vararg{Community{<:Number}}}} <: AbstractMultiScaleArrayHead{B} nodes::N values::Vector{B}