[swift-users] swift 4.0 complains/warns about swapping array elements

Devin Coughlin dcoughlin at apple.com
Fri May 19 12:30:05 CDT 2017


Hi Ed,

> On May 19, 2017, at 10:10 AM, Edward Connell via swift-users <swift-users at swift.org> wrote:
> 
> I just switched to the 5/17 swift 4.0 tool chain on Linux, and I am getting the following complaint when using swap on array elements. Is this warning legitimate because of a copy on write issue? If so, is there some new swap function for array elements? I realize I can turn 1 line into 3 and do the swapping myself, it's just verbose.
> 
> warning: simultaneous accesses to var 'dims', but modification requires exclusive access; consider copying to a local variable
>                                 swap(&dims[lastIndex], &dims[lastIndex-1])

You can use the new swapAt() method:

   dims.swapAt(lastIndex, lastIndex-1)

I recently added a Fix-It for this — but we really should also say "consider using ‘swapAt()’” in the diagnostic text as well in this case rather then mentioning copying to a local.

Devin


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170519/2e65f54c/attachment.html>


More information about the swift-users mailing list