It should but my 1.6.3 Base
shows
function push!(a::Array{T,1}, item) where T
# convert first so we don't grow the array if the assignment won't work
itemT = convert(T, item)
_growend!(a, 1)
a[end] = itemT
return a
end
Do I misinterpret _growend
? It looks like
_growend!(a::Vector, delta::Integer) =
ccall(:jl_array_grow_end, Cvoid, (Any, UInt), a, delta)
So the magic is happening in jl_array_grow_end
?
Nevermind, just found it, yes.