-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix compiler failure in Xcode 11 #22
Fix compiler failure in Xcode 11 #22
Conversation
For some unknown reason (at least to me) the `subscript(position:)` extension on `MutableCollection` where `Index == Int` was causing the compilation to fail with a weird `DESERIALIZATION FAILURE` error, as mentioned on pointfreeco#15. Updating the `subscript` to use `C.Index` instead of `Int` appears to make the compiler happy and successfully compile the project. My suspicion is that it somehow enables it to disambiguate between the multiple `subscript` implementations, but it's pure speculation 🔮. On our tests this seems to have fixed the issue, and since it's an equivalent definition of the subscript (even though more "precise" from a generics POV), it should cause no side effects. Fixes pointfreeco#15. 🎉
b20f92b
to
9670a49
Compare
Well, apparently I got a bit carried away and this only works in an incremental build 😓. Performing a clean build still fails to compile, and running it for the second time also works with the "original" version (i.e. with the Sorry for the noise 😇 |
Apparently by defining `NonEmpty` as conforming to `Collection` right away in its declaration (instead of in an extension), the compilation failure seems to be fixed. Even when performing a clean build, the target now successfully compiles. 🎉 Not sure about the actual cause for this, but this definitely seems like a compiler bug (file ordering / dependency, perhaps?).
After much experimentation, I seem to have found a working solution, even for clean builds 🎉 |
What's the status of this PR? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks so much for this! and sorry for the delay!
We were seeing this problem while trying to convert to GH actions, and didn't know what the heck was going on. Didn't realize you had already solved it.
We're merging now!
Apparently by defining
NonEmpty
as conforming toCollection
right away in its declaration (instead of in an extension), the compilation failure with a weirdDESERIALIZATION FAILURE
error, as mentioned on #15 seems to be fixed.Even when performing a clean build, the target now successfully compiles. 🎉 (it didn't with the previous solution).
Not sure about the actual cause for this, but this definitely seems like a compiler bug (file ordering / dependency, perhaps? 🔮).
Fixes #15. 🎉