Files
swift-mirror/test/Concurrency/sendable_checking_captures.swift
Slava Pestov 5a39369724 Concurrency: Contextualize initializers before checking actor isolation
Otherwise, we'll miss captures inside closures inside stored property
initializer expressions.
2024-04-16 12:34:56 -04:00

25 lines
780 B
Swift

// RUN: %target-typecheck-verify-swift -swift-version 6
class NonSendable {} // expected-note 3{{class 'NonSendable' does not conform to the 'Sendable' protocol}}
func callee(_: @Sendable () -> NonSendable) {}
var testLocalCaptures: Int {
let ns = NonSendable()
@Sendable func localFunc() -> NonSendable {
return ns // expected-error {{capture of 'ns' with non-sendable type 'NonSendable' in a `@Sendable` local function}}
}
callee { return ns } // expected-error {{capture of 'ns' with non-sendable type 'NonSendable' in a `@Sendable` closure}}
return 3
}
struct Bad {
var c: Int = {
let ns = NonSendable()
callee { return ns } // expected-error {{capture of 'ns' with non-sendable type 'NonSendable' in a `@Sendable` closure}}
return 3
}()
}