diff --git a/src/rulesets/Base/indexing.jl b/src/rulesets/Base/indexing.jl index 61216bda2..4f082f892 100644 --- a/src/rulesets/Base/indexing.jl +++ b/src/rulesets/Base/indexing.jl @@ -262,11 +262,7 @@ end # Using Val(dim) here is worth a factor of 2 in this, on Julia 1.8- # @btime rrule(eachcol, $([1 2; 3 4]))[2]($([[10, 20], [30, 40]])) function ∇eachslice(dys_raw, x::AbstractArray, vd::Val{dim}) where {dim} - dys = unthunk(dys_raw) - i1 = findfirst(dy -> dy isa AbstractArray, dys) - if i1 === nothing # all slices are Zero! - return _zero_fill!(similar(x, float(eltype(x)), axes(x))) - end + dys = unthunk.(unthunk(dys_raw)) T = Base.promote_eltype(dys...) # The whole point of this gradient is that we can allocate one `dx` array: dx = similar(x, T, axes(x))