SE-0337: Incremental Migration to Concurrency Checking

The intent behind Swift 6 is that it will not silently accept the presence of a potential data race (without unsafe code explicitly involved somewhere), so @preconcurrency must not completely silence the diagnostics. Hence, they'll be warnings in Swift 6.

Now, this isn't the only suppression mechanism. One is permitted to write an @unchecked Sendable conformance for a type from another module; that suppresses the warning because the type is now Sendable. Teams that use Swift 6 with warnings-as-errors will need to maintain these @unchecked Sendable conformances, which seems acceptable because it is explicit.

Doug

4 Likes