diff --git a/base/genericmemory.jl b/base/genericmemory.jl index a6f002b9c6175..3463be456ea59 100644 --- a/base/genericmemory.jl +++ b/base/genericmemory.jl @@ -308,7 +308,7 @@ end isempty(inds) && return T[] # needed to allow view(Memory{T}(undef, 0), 2:1) @boundscheck checkbounds(m, inds) ref = MemoryRef(m, first(inds)) # @inbounds would be safe here but does not help performance. - dims = (length(inds),) + dims = (Int(length(inds)),) $(Expr(:new, :(Array{T, 1}), :ref, :dims)) end end diff --git a/test/arrayops.jl b/test/arrayops.jl index 65a9ecbd5e2a2..a31d373a65a38 100644 --- a/test/arrayops.jl +++ b/test/arrayops.jl @@ -3205,6 +3205,9 @@ end @test @inferred(view(mem, -5:-7))::Vector{Int} == [] @test @inferred(reshape(mem, 5, 2))::Matrix{Int} == reshape(11:20, 5, 2) + # 53990 + @test @inferred(view(mem, unsigned(1):10))::Vector{Int} == 11:20 + empty_mem = Memory{Module}(undef, 0) @test_throws BoundsError view(empty_mem, 0:1) @test_throws BoundsError view(empty_mem, 1:2) diff --git a/test/core.jl b/test/core.jl index 0eca2251cd146..b1af565c07d6a 100644 --- a/test/core.jl +++ b/test/core.jl @@ -5524,6 +5524,9 @@ let a = Base.StringVector(2^17) @test sizeof(c) == 0 end +# issue #53990 / https://github.com/JuliaLang/julia/pull/53896#discussion_r1555087951 +@test Base.StringVector(UInt64(2)) isa Vector{UInt8} + @test_throws ArgumentError eltype(Bottom) # issue #16424, re-evaluating type definitions