-
-
Notifications
You must be signed in to change notification settings - Fork 601
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
Nimble Next #1068
base: main
Are you sure you want to change the base?
Nimble Next #1068
Conversation
Now that we require Sendable closures when using async toEventually/async expressions, this presents an issue integrating with Quick. In Quick, the common/promoted styling is to declare variables as vars in an ExampleGroup (i.e. var subject: SomeClass!
// ...
it("does something") {
expect { [subject] in await subject!.value }.to(...)
// Note: In the closure, the type of `subject` is changed from a force-unwrap optional to a standard optional.
// that is, the `!` boilerplate is now required.
} Which is a terrible experience. It would be awfully nice if Swift would let us implicitly capture that var and pass it along. |
Make Predicate's closure Sendable, and make Predicate Sendable when the returning value is Sendable
* Update Require DSL to largely be Sendable * Fix now-broken tests
* Make FailureMessage sendable. * Make MatcherResult conform to Sendable
Still more to do here. Will likely to require further refactoring
There are 2 subclasses which are also sendable/safe to use. And no one else can make subclasses outside of Nimble, so this is tolerable
…compatible with swift 6
With the merging of #1167, all of the concurrency warnings are fixed (when running on Xcode 16). Unfortunately, this refuses to build on pre-swift-6 versions of Xcode thanks to the use of sending, and there are even broken tests to go look through. |
This represents the work for the Nimble
13Next version.The idea is to keep this as a draft PR until it's ready. Nimble
13Next betas will source from this PR.Work for the next minor version of Nimble will continue to target main, and I'll regularly rebase this PR on top of main to keep it in sync.
Once I feel like we're ready to release this, I'll merge this PR into main.
Contents:
TODO