I have set default actor isolation to main actor for my 2 libraries: LibApp and LibGame.
In LibApp, I have:
public protocol PluginTheme {}
Then in LibGame, which depends on LibApp:
public protocol GamePluginTheme: PluginTheme
public struct BasicGamePluginTheme: GamePluginTheme {
// ...
}
This gives me warning:
Conformance of 'BasicGamePluginTheme' to protocol 'GamePluginTheme' crosses into main actor-isolated code and can cause data races; this is an error in the Swift 6 language mode
However, if I add @MainActor to PluginTheme, the warning is gone. This is very confusing, I have set the default actor isolation to main, why is it still non-isolated?