Skip to content

Commit ae483c3

Browse files
authored
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
1 parent 0ffbae8 commit ae483c3

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
@@ -3007,7 +3007,7 @@ end
30073007
@inline function _stack_size_check(x, ax1::Tuple)
30083008
if _iterator_axes(x) != ax1
30093009
uax1 = map(UnitRange, ax1)
3010-
uaxN = map(UnitRange, axes(x))
3010+
uaxN = map(UnitRange, _iterator_axes(x))
30113011
throw(DimensionMismatch(
30123012
LazyString("stack expects uniform slices, got axes(x) == ", uaxN, " while first had ", uax1)))
30133013
end

test/abstractarray.jl

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

1787+
@test stack(["hello", "world"]) isa Matrix{Char}
1788+
@test_throws DimensionMismatch stack(["hello", "world!"]) # had a bug in error printing
1789+
17871790
# Empty
17881791
@test_throws ArgumentError stack(())
17891792
@test_throws ArgumentError stack([])

0 commit comments

Comments
 (0)