Avatar
Avatar
omochimetaru
@swift-6.2.3 -swift-version 6 class C { var x = 0 } func useC(_ c: C) {} actor A { init() {} func setC(_ ns: C) {} } func main() async { let a = A() let c = C() await a.setC(c) useC(c) }
exit status 1 with stderr:<stdin>:16:13: error: sending 'c' risks causing data races [#SendingRisksDataRace] 14 | let a = A() 15 | let c = C() 16 | await a.setC(c) | |- error: sending 'c' risks causing data races [#SendingRisksDataRace] | `- note: sending 'c' to actor-isolated instance method 'setC' risks causing data races between actor-isolated and local nonisolated uses 17 | useC(c) | `- note: access can happen concurrently 18 | } 19 | [#SendingRisksDataRace]: <https://docs.swift.org/compiler/documentation/diagnostics/sending-risks-data-race>