If I try to compile the following, I get a compilation error:
import Foundation
func isolatedPrint<A : Actor>(on actor: isolated A) {
print("hello")
}
Task{ @MainActor in
isolatedPrint(on: MainActor.shared)
}
The error:
toto.swift:9:2: error: expression is 'async' but is not marked with 'await'
isolatedPrint(on: MainActor.shared)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
await
toto.swift:9:2: note: calls to global function 'isolatedPrint(on:)' from outside of its actor context are implicitly asynchronous
isolatedPrint(on: MainActor.shared)
^
I don’t understand why the compiler does not detect the function is called on the MainActor via the actor parameter.