[swift-evolution] [Swift 3?] Add ContiguousArray -> Array non-copying initialiser

Dmitri Gribenko gribozavr at gmail.com
Thu Jul 28 03:32:59 CDT 2016


On Wed, Jul 27, 2016 at 11:08 PM, Karl via swift-evolution
<swift-evolution at swift.org> wrote:
> It seems like a reasonably large hole with a simple fix. Going from
> ContiguousArray to Array is a kind-of upcasting conversion and should be
> allowed -- it seems like that's almost the whole point of the type.

Hi Karl,

Converting a ContiguousArray to Array using Array's initializer is
O(1).  Are you seeing something different?

Array.init:

https://github.com/apple/swift/blob/f8f6d61d195185f54aeba425dd0db8be4c5d163f/stdlib/public/core/Arrays.swift.gyb#L1037

ContiguousArray._copyToContiguousArray():

https://github.com/apple/swift/blob/f8f6d61d195185f54aeba425dd0db8be4c5d163f/stdlib/public/core/Arrays.swift.gyb#L1430

Dmitri

-- 
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/


More information about the swift-evolution mailing list