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