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
(cherry picked from commit 3ed4059a60)
38 lines
1.1 KiB
Swift
38 lines
1.1 KiB
Swift
// RUN: %target-swift-frontend -enable-experimental-feature StrictConcurrency -enable-experimental-feature RawLayout -typecheck -verify %s
|
|
|
|
// REQUIRES: swift_feature_RawLayout
|
|
// REQUIRES: swift_feature_StrictConcurrency
|
|
|
|
func checkSendable(_: @Sendable () -> ()) {}
|
|
|
|
@_rawLayout(size: 4, alignment: 4)
|
|
struct NotAutomaticallySendableAndNotUsedAsSendable: ~Copyable {}
|
|
|
|
@_rawLayout(size: 4, alignment: 4)
|
|
struct NotAutomaticallySendable: ~Copyable {} // expected-note{{}}
|
|
|
|
func testNotAutomaticallySendable() {
|
|
let s = NotAutomaticallySendable()
|
|
|
|
checkSendable { _ = s } // expected-warning{{capture of 's' with non-Sendable type 'NotAutomaticallySendable'}}
|
|
}
|
|
|
|
@_rawLayout(size: 4, alignment: 4)
|
|
struct UnuncheckedSendable: ~Copyable, Sendable {} // expected-warning{{'@_rawLayout' does not conform to the 'Sendable' protocol}}
|
|
|
|
func testUnuncheckedSendable() {
|
|
let s = UnuncheckedSendable()
|
|
|
|
checkSendable { _ = s }
|
|
}
|
|
|
|
@_rawLayout(size: 4, alignment: 4)
|
|
struct UncheckedSendable: ~Copyable, @unchecked Sendable {}
|
|
|
|
func testUncheckedSendable() {
|
|
let s = UncheckedSendable()
|
|
|
|
checkSendable { _ = s }
|
|
}
|
|
|