Avatar
region based isolationのプロポーザルを見てるとここら辺がモチベーションな気がしました。 Sadly synchronous initializers without additional work can still only take Sendable types since there is not a guarantee that the non-Sendable types that are passed to it is in its own region. In order to pass a non-Sendable type to a synchronous initializer, one must mark the parameter with the transferring function parameter modifier caller側の分離領域とcallee側の分離領域が同じかどうかが保証できないから、callee側の分離領域内にパラメータの値をtransferすることをコンパイラに知らせることで、non-Sendableな値も渡せるようにしたいということなのかなあ、と。 https://github.com/apple/swift-evolution/blob/main/proposals/0414-region-based-isolation.md#using-transferring-to-pass-non-sendable-values-to-async-isolated-actor-initializers (edited)
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - apple/swift-evolution