Skip to content

Commit

Permalink
Fix a bug in stack's DimensionMismatch error message (#54033)
Browse files Browse the repository at this point in the history
`stack` does not require that the inner iterator defines `axes`, but the
code to assemble an error message assumed this.

Found here:
https://discourse.julialang.org/t/reduce-hcat-is-type-unstable/112800/3

(cherry picked from commit ae483c3)
  • Loading branch information
mcabbott authored and KristofferC committed Aug 2, 2024
1 parent 1f285ec commit 70af74e
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
2 changes: 1 addition & 1 deletion base/abstractarray.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2985,7 +2985,7 @@ end
@inline function _stack_size_check(x, ax1::Tuple)
if _iterator_axes(x) != ax1
uax1 = map(UnitRange, ax1)
uaxN = map(UnitRange, axes(x))
uaxN = map(UnitRange, _iterator_axes(x))
throw(DimensionMismatch(
LazyString("stack expects uniform slices, got axes(x) == ", uaxN, " while first had ", uax1)))
end
Expand Down
3 changes: 3 additions & 0 deletions test/abstractarray.jl
Original file line number Diff line number Diff line change
Expand Up @@ -1771,6 +1771,9 @@ end
@test_throws ArgumentError stack([1:3, 4:6]; dims=3)
@test_throws ArgumentError stack(abs2, 1:3; dims=2)

@test stack(["hello", "world"]) isa Matrix{Char}
@test_throws DimensionMismatch stack(["hello", "world!"]) # had a bug in error printing

# Empty
@test_throws ArgumentError stack(())
@test_throws ArgumentError stack([])
Expand Down

0 comments on commit 70af74e

Please sign in to comment.