How to use/test implemented but not released yet changes in Swift?


I was trying to experiment with Sendable from SE-0302. It was implemented in swift 5.7 so my thought was that it should be available in the latest Trunk Development Snapshot (March 22, 2022).

I wanted to see those restrictions on Sendables on my own instead of just reading about them:

class MyClass {

actor MyActor {
    let myClass: MyClass = .init()
    func doSomething() {
        Task.detached {

For the code above I got a warnings about MyClass not being Sendable type, which is what I was expecting, but when I changed MyActor to be a class instead of an actor warnings disappeared.

So I have two two questions:

  1. How do I experiment with the most recent Swift changes?

  2. Why did those warnings disappear?

Thanks :)

You're doing the right thing. When you changed actor to class, your code no longer obviously "uses concurrency", which is a notion defined in SE-0337. If you want complete Sendable checking, use the flag -warn-concurrency.



After adding -warn-concurrency everything works as expected!
Thank you :)