omochimetaru
このバッティングよくわからなかったので、順を追った説明がほしい
1. 現状の @_inheritActorContext
はglobal actor以外のcontextは暗黙的は引き継がないはnon-Sendable
な値を暗黙的にキャプチャできない 2. @inheritsIsolation
が提案されていて(すでにマージされてて使える)、それに変わると暗黙的に引き継がれるキャプチャできるようになる 3. そうすると、 async func
に isolated
引数でactorを指定した場合も Task.init
はcontextを引き継ぐで暗黙的キャプチャできる 4. 新しい nonisolated async func
の提案が暗黙の isolated
引数を仕込むのなら、 Task.init
がcontextを引き継がない暗黙的キャプチャできないとおかしくない? って話。Proposalには引き継がないと書かれてるのでバッティング。でも、実際には仕込まれる暗黙の引数は Optional
だから(おそらくactorの外から呼ばれた時は nil
になる)引き継がなくて正しそう。 (edited)