Skip to content
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

Draft
wants to merge 26 commits into
base: main
Choose a base branch
from
Draft

Nimble Next #1068

wants to merge 26 commits into from

Conversation

younata
Copy link
Member

@younata younata commented Jul 29, 2023

@younata younata added this to the v13.0.0 milestone Jul 29, 2023
@younata
Copy link
Member Author

younata commented Aug 15, 2023

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. describe, context, or even the root example group in the spec method). In Swift 5.9, when you pass a var to a sendable closure, you have to explicitly declare it. 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.

@younata
Copy link
Member Author

younata commented Oct 14, 2024

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.

@younata younata modified the milestones: v13.0.0, v14.0.0 Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant