diff --git a/base/strings/basic.jl b/base/strings/basic.jl index 6619a2b25574e..a1118ecaa9853 100644 --- a/base/strings/basic.jl +++ b/base/strings/basic.jl @@ -805,6 +805,8 @@ write(io::IO, s::CodeUnits) = write(io, s.s) cconvert(::Type{Ptr{T}}, s::CodeUnits{T}) where {T} = cconvert(Ptr{T}, s.s) cconvert(::Type{Ptr{Int8}}, s::CodeUnits{UInt8}) = cconvert(Ptr{Int8}, s.s) +similar(::Type{<:CodeUnits{T}}, dims::Dims) where {T} = similar(Array{T}, dims) + """ codeunits(s::AbstractString) diff --git a/test/strings/basic.jl b/test/strings/basic.jl index 60d24280efe6b..214a14ed2443f 100644 --- a/test/strings/basic.jl +++ b/test/strings/basic.jl @@ -1096,6 +1096,7 @@ let s = "∀x∃y", u = codeunits(s) @test_throws Base.CanonicalIndexError (u[1] = 0x00) @test collect(u) == b"∀x∃y" @test Base.elsize(u) == Base.elsize(typeof(u)) == 1 + @test similar(typeof(u), 3) isa Vector{UInt8} end @testset "issue #24388" begin