mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
This matches send non sendable but importantly also makes it clear that we are talking about something that doesn't conform to the Sendable protocol which is capitalized. rdar://151802975
34 lines
1.4 KiB
Swift
34 lines
1.4 KiB
Swift
// RUN: %target-swift-frontend -verify -emit-sil -o /dev/null %s
|
|
// RUN: %target-swift-frontend -verify -emit-sil -o /dev/null %s -strict-concurrency=targeted
|
|
// RUN: %target-swift-frontend -verify -emit-sil -o /dev/null %s -strict-concurrency=complete
|
|
// RUN: %target-swift-frontend -verify -emit-sil -o /dev/null %s -strict-concurrency=complete -enable-upcoming-feature RegionBasedIsolation
|
|
|
|
// REQUIRES: concurrency
|
|
// REQUIRES: swift_feature_RegionBasedIsolation
|
|
|
|
@available(SwiftStdlib 5.1, *)
|
|
class NotSendable { // expected-note 2{{class 'NotSendable' does not conform to the 'Sendable' protocol}}
|
|
}
|
|
|
|
@available(SwiftStdlib 5.1, *)
|
|
@available(*, unavailable)
|
|
extension NotSendable: Sendable { }
|
|
|
|
@available(SwiftStdlib 5.1, *)
|
|
class Super {
|
|
func f(_: NotSendable) async { }
|
|
@MainActor func g1(_: NotSendable) { }
|
|
@MainActor func g2(_: NotSendable) async { }
|
|
}
|
|
|
|
@available(SwiftStdlib 5.1, *)
|
|
class Sub: Super {
|
|
@MainActor override func f(_: NotSendable) async { }
|
|
// expected-warning@-1{{non-Sendable parameter type 'NotSendable' cannot be sent from caller of superclass instance method 'f' into main actor-isolated override}}
|
|
|
|
nonisolated override func g1(_: NotSendable) { } // okay, synchronous
|
|
|
|
nonisolated override func g2(_: NotSendable) async { }
|
|
// expected-warning@-1{{non-Sendable parameter type 'NotSendable' cannot be sent from caller of superclass instance method 'g2' into nonisolated override}}
|
|
}
|