hironytic
           (B) が MainActor ではないところが微妙 
         
        
        ↑の話で考えると、 (B) は最終的な仕様上 MainActor にならないし、現状でも MainActor に守られているわけではないけど、 self.nameLabel.text = ... みたいなのが書けないと既存コードが破壊されまくるので、現状ではコンパイラが MainActor 扱いにしてコードの互換性を保っている(ただし守られてはいない)、 Swift 6 では MainActor でなくなるし await 必須になる、ということになる? そして、それと bar をすっ飛ばして Task.init が foo の context を引き継ぐ話はまた別で、 @Sendable は actor の context をぶった切る、 @Sendable でない @escaping なクロージャが何かの actor の context を持つことはないと考えると、 Task.init に渡されるクロージャは、それが宣言された場所で最も近い(内側のスコープの) actor を引き継ぐと考えれば一般化できる? という感じでしょうか。