File tree Expand file tree Collapse file tree 1 file changed +16
-6
lines changed Expand file tree Collapse file tree 1 file changed +16
-6
lines changed Original file line number Diff line number Diff line change @@ -901,13 +901,23 @@ end
901
901
typeof (function copyto! end ). name. max_methods = UInt8 (1 )
902
902
903
903
function copyto! (dest:: AbstractArray , src)
904
- destiter = eachindex (dest)
905
- y = iterate (destiter)
906
- for x in src
907
- y === nothing &&
904
+ if haslength (src)
905
+ length (dest) < length (src) &&
908
906
throw (ArgumentError (" destination has fewer elements than required" ))
909
- dest[y[1 ]] = x
910
- y = iterate (destiter, y[2 ])
907
+ I = firstindex (dest)
908
+ @inbounds for x in src
909
+ dest[I] = x
910
+ I = nextind (dest, I)
911
+ end
912
+ else
913
+ destiter = eachindex (dest)
914
+ y = iterate (destiter)
915
+ for x in src
916
+ y === nothing &&
917
+ throw (ArgumentError (" destination has fewer elements than required" ))
918
+ dest[y[1 ]] = x
919
+ y = iterate (destiter, y[2 ])
920
+ end
911
921
end
912
922
return dest
913
923
end
You can’t perform that action at this time.
0 commit comments