From d2d83d23c925141228eebbbb6183f2c69cebc708 Mon Sep 17 00:00:00 2001 From: Takafumi Arakaki Date: Wed, 1 Jul 2020 13:07:35 -0700 Subject: [PATCH] Improve append!!(::SVector, ::SingletonVector) (#174) --- src/NoBang/base.jl | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/NoBang/base.jl b/src/NoBang/base.jl index 505093ef..589c4f24 100644 --- a/src/NoBang/base.jl +++ b/src/NoBang/base.jl @@ -44,14 +44,12 @@ append(xs::AbstractVector, ys::AbstractVector) = vcat(xs, ys) elseif length(ys) == 0 xs - #= - elseif length(ys) == 1 - push(xs, ys[1]) - =# else # Not so robust: # append!!(push(xs, ys[1]), @view ys[2:end]) - foldl(push!!, (@view ys[2:end]), init=push(xs, ys[1])) + zs = push(xs, ys[1]) + length(ys) == 1 && return zs + foldl(push!!, (@view ys[2:end]), init = zs) end append(xs::ImmutableContainer, ys) = push(xs, ys...)