Skip to content

reducedims is not type stable #1163

@tiemvanderdeure

Description

@tiemvanderdeure

Looked a bit at the @inferred test fails for maximum reported in #1162.

Seems reducedims is type unstable. I can't quite figure out why, but surely it shouldn't return Any

julia> using DimensionalData
Precompiling DimensionalData...
  3 dependencies successfully precompiled in 44 seconds. 32 already precompiled.

julia> DD = DimensionalData
DimensionalData

julia> @code_warntype DD.reducedims((X(1:10),Y(1:10)), 1)
MethodInstance for reducedims(::Tuple{X{UnitRange{Int64}}, Y{UnitRange{Int64}}}, ::Int64)
  from reducedims(x, dimstoreduce) @ DimensionalData.Dimensions C:\Users\tsh371\.julia\dev\DimensionalData\src\Dimensions\primitives.jl:494
Arguments
  #self#::Core.Const(DimensionalData.Dimensions.reducedims)
  x::Tuple{X{UnitRange{Int64}}, Y{UnitRange{Int64}}}
  dimstoreduce::Int64
Body::Any
1 ─      nothing
│   %2 = DimensionalData.Dimensions._reducedims::Core.Const(DimensionalData.Dimensions._reducedims)
│   %3 = DimensionalData.Dimensions.name2dim(dimstoreduce)::Int64
│   %4 = (%2)(x, %3)::Any
└──      return %4

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions