Skip to content

Commit fe51261

Browse files
vtjnashaviatesk
authored and
KristofferC
committed
fix prepend StackOverflow issue (#54718)
Attempt to fix #54711 Test introduced by #36227 --------- Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> (cherry picked from commit 9477472)
1 parent 4d53a38 commit fe51261

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

base/array.jl

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1312,8 +1312,7 @@ end
13121312

13131313
append!(a::AbstractVector, iter) = _append!(a, IteratorSize(iter), iter)
13141314
push!(a::AbstractVector, iter...) = append!(a, iter)
1315-
1316-
append!(a::AbstractVector, iter...) = foldl(append!, iter, init=a)
1315+
append!(a::AbstractVector, iter...) = (for v in iter; append!(a, v); end; return a)
13171316

13181317
function _append!(a::AbstractVector, ::Union{HasLength,HasShape}, iter)
13191318
n = Int(length(iter))::Int
@@ -1372,10 +1371,9 @@ function prepend!(a::Vector{T}, items::Union{AbstractVector{<:T},Tuple}) where T
13721371
return a
13731372
end
13741373

1375-
prepend!(a::Vector, iter) = _prepend!(a, IteratorSize(iter), iter)
1376-
pushfirst!(a::Vector, iter...) = prepend!(a, iter)
1377-
1378-
prepend!(a::AbstractVector, iter...) = foldr((v, a) -> prepend!(a, v), iter, init=a)
1374+
prepend!(a::AbstractVector, iter) = _prepend!(a, IteratorSize(iter), iter)
1375+
pushfirst!(a::AbstractVector, iter...) = prepend!(a, iter)
1376+
prepend!(a::AbstractVector, iter...) = (for v = reverse(iter); prepend!(a, v); end; return a)
13791377

13801378
function _prepend!(a::Vector, ::Union{HasLength,HasShape}, iter)
13811379
@_terminates_locally_meta

0 commit comments

Comments
 (0)