-
-
Notifications
You must be signed in to change notification settings - Fork 602
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
Test in Swift 3 compatibility mode #431
Conversation
c531c16
to
a16802b
Compare
@Quick/core Would love your input on whether to merge with this warning. If so, we could put out a patch release that supports Swift 4. |
Please confirm. There's a warning with Swift 3 but everything is still compatible with Swift 3 and you have a working version for Swift 4? If so, LGTM (but I still recommend that we hear from a few others in the core team. |
Sounds good, feel free to merge :) |
That's correct. In Swift 3 this change generates a new warning (and infuriatingy a fixit), and under Swift 4 in compatibility mode compiles without any new warnings. We may also need to add |
Ok, I've added the Note: The tests don't compile under Swift 4 due to operator overload ambiguity. I don't know why, but it seems like maybe a Swift 3 compatibility bug? This also probably indicates that Swift 4 consumers won't be able to use certain operators right now, but at least compiling is a start! |
Thanks @sharplet! |
Test in Swift 3 compatibility mode
I think it would be ideal to add Nimble to the Swift 3 source compatibility suite. This PR should hopefully demonstrate that Nimble doesn't compile in Swift 3 compatibility mode. The two issues I've noticed:NSFastEnumerationIterator
is a struct now, not a classThe overload rules appear to have changed, and the tests don't compile due to ambiguous matcher overloadsI haven't deeply investigated the requirements for the source compatibility suite, but I wanted to kick of the discussion.Update!
Turns it's only a very minor change required to get
-swift-version 3
working! I'm still not quick sure if we should merge with this change because of the warning under Swift 3, but I'm now successfully consuming Nimble from a Swift 4 project.