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