-
-
Notifications
You must be signed in to change notification settings - Fork 39
Closed
Description
In some cases (such as with parameter handling) it can be useful to allow for empty ComponentArrays. This currently fails:
ComponentArray()
produces the error:
ERROR: ArgumentError: reducing over an empty collection is not allowed
Stacktrace:
[1] _empty_reduce_error()
@ Base ./reduce.jl:299
[2] reduce_empty(#unused#::typeof(Base.add_sum), #unused#::Core.TypeofBottom)
@ Base ./reduce.jl:319
[3] reduce_empty(op::Base.BottomRF{typeof(Base.add_sum)}, #unused#::Type{Union{}})
@ Base ./reduce.jl:328
[4] reduce_empty_iter
@ ./reduce.jl:355 [inlined]
[5] reduce_empty_iter
@ ./reduce.jl:354 [inlined]
[6] foldl_impl(op::Base.BottomRF{typeof(Base.add_sum)}, nt::Base._InitialValue, itr::Tuple{})
@ Base ./reduce.jl:49
[7] mapfoldl_impl(f::typeof(identity), op::typeof(Base.add_sum), nt::Base._InitialValue, itr::Tuple{})
@ Base ./reduce.jl:44
[8] mapfoldl(f::Function, op::Function, itr::Tuple{}; init::Base._InitialValue)
@ Base ./reduce.jl:160
[9] mapfoldl
@ ./reduce.jl:160 [inlined]
[10] #mapreduce#218
@ ./reduce.jl:287 [inlined]
[11] mapreduce
@ ./reduce.jl:287 [inlined]
[12] #sum#221
@ ./reduce.jl:501 [inlined]
[13] sum(f::Function, a::Tuple{})
@ Base ./reduce.jl:501
[14] sum(a::Tuple{}; kw::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ Base ./reduce.jl:528
[15] sum(a::Tuple{})
@ Base ./reduce.jl:528
[16] |>(x::Tuple{}, f::typeof(sum))
@ Base ./operators.jl:858
[17] recursive_length(nt::NamedTuple{(), Tuple{}})
@ ComponentArrays ~/.julia/packages/ComponentArrays/6k0iO/src/utils.jl:78
[18] make_idx(data::Vector{Any}, nt::NamedTuple{(), Tuple{}}, last_val::Int64)
@ ComponentArrays ~/.julia/packages/ComponentArrays/6k0iO/src/componentarray.jl:135
[19] make_carray_args(A::Type{Vector{T} where T}, nt::NamedTuple{(), Tuple{}})
@ ComponentArrays ~/.julia/packages/ComponentArrays/6k0iO/src/componentarray.jl:129
[20] make_carray_args(nt::NamedTuple{(), Tuple{}})
@ ComponentArrays ~/.julia/packages/ComponentArrays/6k0iO/src/componentarray.jl:123
[21] ComponentArray(nt::NamedTuple{(), Tuple{}})
@ ComponentArrays ~/.julia/packages/ComponentArrays/6k0iO/src/componentarray.jl:62
[22] ComponentArray(; kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ ComponentArrays ~/.julia/packages/ComponentArrays/6k0iO/src/componentarray.jl:65
[23] ComponentArray()
@ ComponentArrays ~/.julia/packages/ComponentArrays/6k0iO/src/componentarray.jl:65
[24] top-level scope
@ REPL[3]:1
Metadata
Metadata
Assignees
Labels
No labels