Skip to content

Commit 70af74e

Browse files
mcabbottKristofferC
authored andcommitted
Fix a bug in stack's DimensionMismatch error message (#54033)
`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)
1 parent 1f285ec commit 70af74e

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

base/abstractarray.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2985,7 +2985,7 @@ end
29852985
@inline function _stack_size_check(x, ax1::Tuple)
29862986
if _iterator_axes(x) != ax1
29872987
uax1 = map(UnitRange, ax1)
2988-
uaxN = map(UnitRange, axes(x))
2988+
uaxN = map(UnitRange, _iterator_axes(x))
29892989
throw(DimensionMismatch(
29902990
LazyString("stack expects uniform slices, got axes(x) == ", uaxN, " while first had ", uax1)))
29912991
end

test/abstractarray.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1771,6 +1771,9 @@ end
17711771
@test_throws ArgumentError stack([1:3, 4:6]; dims=3)
17721772
@test_throws ArgumentError stack(abs2, 1:3; dims=2)
17731773

1774+
@test stack(["hello", "world"]) isa Matrix{Char}
1775+
@test_throws DimensionMismatch stack(["hello", "world!"]) # had a bug in error printing
1776+
17741777
# Empty
17751778
@test_throws ArgumentError stack(())
17761779
@test_throws ArgumentError stack([])

0 commit comments

Comments
 (0)