Skip to content

cumsum gives bad error message when collection elements can't be added #53438

@LilithHafner

Description

@LilithHafner
julia> sum(sincos.(1:10)) # Good error
ERROR: MethodError: no method matching +(::Tuple{Float64, Float64}, ::Tuple{Float64, Float64})

Closest candidates are:
  +(::Any, ::Any, ::Any, ::Any...)
   @ Base operators.jl:587

Stacktrace:
 [1] add_sum(x::Tuple{Float64, Float64}, y::Tuple{Float64, Float64})
   @ Base ./reduce.jl:24
 [2] _mapreduce
   @ ./reduce.jl:440 [inlined]
 [3] _mapreduce_dim
   @ ./reducedim.jl:365 [inlined]
 [4] mapreduce
   @ ./reducedim.jl:357 [inlined]
 [5] _sum
   @ ./reducedim.jl:1015 [inlined]
 [6] _sum
   @ ./reducedim.jl:1014 [inlined]
 [7] sum(a::Vector{Tuple{Float64, Float64}})
   @ Base ./reducedim.jl:1010
 [8] top-level scope
   @ REPL[24]:1

julia> cumsum(sincos.(1:10)) # Bad error
ERROR: ArgumentError: cannot convert a value to Union{} for assignment
Stacktrace:
  [1] convert(T::Core.TypeofBottom, x::Tuple{Float64, Float64})
    @ Base ./essentials.jl:315
  [2] setindex!(A::Vector{Union{}}, x::Tuple{Float64, Float64}, i1::Int64)
    @ Base ./array.jl:1021
  [3] accumulate_pairwise!
    @ ./accumulate.jl:29 [inlined]
  [4] _cumsum!(out::Vector{Union{}}, v::Vector{Tuple{Float64, Float64}}, dim::Int64, ::Base.ArithmeticRounds)
    @ Base ./accumulate.jl:57
  [5] _cumsum!
    @ ./accumulate.jl:60 [inlined]
  [6] #cumsum!#889
    @ ./accumulate.jl:53 [inlined]
  [7] cumsum!
    @ ./accumulate.jl:51 [inlined]
  [8] #cumsum#890
    @ ./accumulate.jl:115 [inlined]
  [9] cumsum
    @ ./accumulate.jl:113 [inlined]
 [10] cumsum(x::Vector{Tuple{Float64, Float64}})
    @ Base ./accumulate.jl:146
 [11] top-level scope
    @ REPL[25]:1

In 1.9 the error was

julia> cumsum(sincos.(1:10))
ERROR: MethodError: Base.ArithmeticStyle(::Type{Union{}}) is ambiguous.

Metadata

Metadata

Assignees

No one assigned

    Labels

    error messagesBetter, more actionable error messageshelp wantedIndicates that a maintainer wants help on an issue or pull request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions