mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
wording. Splitting up the diagnostic into separate diagnostics based on the reference kind is easier for me to read. The wording of the error message now puts the problem -- crossing an isolation boundary -- at the center of the message, and attempts to clarify how the value crosses an isolation boundary. E.g. for the witness diagnostics, the value crosses an isolation boundary when calling the witness through the protocol requirement in generic code. This change does not add any additional information to the diagnostics, but it'd be valuable to show both the source and destination isolation.
19 lines
979 B
Swift
19 lines
979 B
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: %target-swift-frontend -emit-module -swift-version 5 -emit-module-path %t/SerializedStruct.swiftmodule -module-name SerializedStruct %S/Inputs/SerializedStruct.swift
|
|
|
|
// RUN: %target-swift-frontend %s -emit-sil -o /dev/null -verify -disable-availability-checking -swift-version 6 -I %t
|
|
|
|
// REQUIRES: concurrency
|
|
|
|
// This test ensures that, when loading a Swift 5 serialized module with
|
|
// a global-actor annotation that is an error in Swift 6, but only a warning
|
|
// in Swift 5, then we do not reject the import as an error.
|
|
|
|
import SerializedStruct // expected-warning {{add '@preconcurrency' to treat 'Sendable'-related errors from module 'SerializedStruct' as warnings}}
|
|
|
|
// use it to force the right checks happen.
|
|
func test() async -> Int {
|
|
let x = MySerializedStruct()
|
|
return await x.counter // expected-error {{non-sendable type 'MySerializedStruct' cannot be sent into main actor-isolated context in call to property 'counter'}}
|
|
}
|