InfiniteArrays.jl icon indicating copy to clipboard operation
InfiniteArrays.jl copied to clipboard

Type for `broadcast(-, 1:2:∞, 0.3)` changed in Julia 1.8

Open KristofferC opened this issue 3 years ago • 2 comments

# 1.8
julia> broadcast(-, 1:2:∞, 0.3) |> typeof
StepRangeLen{Infinities.Infinity, Float64, Int64, Integer}

# 1.7
julia> broadcast(-, 1:2:∞, 0.3) |> typeof
InfiniteArrays.InfStepRange{Float64, Float64}

This breaks some stuff later:

julia> broadcast(-, 1:2:∞, 0.3)
Error showing value of type StepRangeLen{Infinities.Infinity, Float64, Int64, Integer}:
ERROR: MethodError: no method matching Infinities.Infinity(::Float64)
Closest candidates are:
  (::Type{T})(::T) where T<:Number at ~/julia/usr/share/julia/base/boot.jl:772
  Infinities.Infinity() at ~/.julia/packages/Infinities/WAhkk/src/Infinities.jl:24
  (::Type{T})(::AbstractChar) where T<:Union{AbstractChar, Number} at ~/julia/usr/share/julia/base/char.jl:50
  ...
Stacktrace:
  [1] unsafe_getindex(r::StepRangeLen{Infinities.Infinity, Float64, Int64, Integer}, i::Int64)
    @ Base ./range.jl:940
  [2] show(io::IOContext{Base.TTY}, r::StepRangeLen{Infinities.Infinity, Float64, Int64, Integer})
    @ Base ./range.jl:0
  [3] show(io::IOContext{Base.TTY}, #unused#::MIME{Symbol("text/plain")}, r::StepRangeLen{Infinities.Infinity, Float64, Int64, Integer})
...

Maybe something has to be overloaded for StepRangeLen as well?

KristofferC avatar Feb 19 '22 18:02 KristofferC

Is 1.8 close to RC? I tend to wait to RC before making any changes (I was bit once changing + to .+ only to have to change it all back.)

dlfivefifty avatar Feb 19 '22 18:02 dlfivefifty

No, not really close, but the process of getting to an RC is done by checking that there aren't a bunch of regressions in package tests so having package authors ensure that their package work on nightly greatly helps with getting an RC earlier since the PkgEval logs will be cleaner.

KristofferC avatar Feb 19 '22 18:02 KristofferC