Avatar
func takeSendableClosure(_ c: @Sendable () -> ()) {} let nonSendable: () -> () = {} takeSendableClosure(nonSendable) // 警告出る struct S { var nonSendableValue: () -> () @Sendable func mayUseNonSendableValue() { nonSendableValue() } } var s = S(nonSendableValue: {}) takeSendableClosure(s.mayUseNonSendableValue) // 警告出ない (edited)
3:04 AM
structとかに生えてる関数、適当に@Sendableつけるだけで@Sendableなクロージャとして扱えてしまうんですが、これって正しいんでしょうかね?