On 14 Sep 2017, at 03:56, somu subscribe via swift-users
<[email protected]> wrote:
> popFirst is not available in the Array …
Right. This makes sense when you consider the standard setup for an array,
namely, a variable length buffer of items. Removing the first element is
expensive, whereas removing the last element (`popLast()`) is cheap.
If you run your simplified example in Xcode 8 you get an error that hints at
what’s going on.
var array = [1, 2, 3, 4, 5]
_ = array.popFirst()
~~~~~~^~~~~~~~
error: 'ArraySlice<Int>' is not convertible to '[Int]'
Notably, I put Rick’s code into Xcode 8 (Xcode 8.3.3 on macOS 10.12.6 with a
new command line tool project) and I get the same error there.
let mf = self.pendingFetchers.popFirst()
~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
error: 'ArraySlice<ModelFetcher>' is not convertible to '[ModelFetcher]’
* * *
@Rick, there’s two things in play here:
* The diagnostic is clearly bogus and you should definitely file a bug about
that.
<https://bugs.swift.org/>
Please post your bug number, just for the record.
* You wrote:
> This code compiled fine in Xcode 8 …
My tests indicate that it doesn’t. I suspect that you changed something else
during the Swift 4 migration and that’s why you’re seeing it fail. Can you
take another look at the original Xcode 8 code to see what’s else got changed?
Share and Enjoy
--
Quinn "The Eskimo!" <http://www.apple.com/developer/>
Apple Developer Relations, Developer Technical Support, Core OS/Hardware
_______________________________________________
swift-users mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users