mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
The `convenience` keyword is not accepted on actor initializers because the compiler infers this status automatically and actors cannot be subclassed. However, internally the compiler still computes whether an actor init is a convenience init and this implicit status has been leaking through accidentally in printed `.swiftinterface` files. This was noticed because in Swift 6 the presence of the keyword is diagnosed as an error, making `.swiftinterface` files unparseable for modules containing actors with convenience inits. For Swift 6, I'm just going to suppress the error in `.swiftinterface` files regardless of language mode. In future releases of the compiler, though, it can stop printing the `convenience` keyword on these inits altogether, though. Resolves rdar://130857256.
23 lines
955 B
Swift
23 lines
955 B
Swift
// RUN: %empty-directory(%t)
|
|
|
|
// RUN: %target-swift-emit-module-interface(%t/Library.swiftinterface) %s -module-name Library
|
|
// RUN: %target-swift-typecheck-module-from-interface(%t/Library.swiftinterface) -module-name Library
|
|
// RUN: %FileCheck %s --check-prefixes=CHECK < %t/Library.swiftinterface
|
|
|
|
// Re-verify with -swift-version 6
|
|
// RUN: %target-swift-emit-module-interface(%t/Library.swiftinterface) %s -swift-version 6 -module-name Library
|
|
// RUN: %target-swift-typecheck-module-from-interface(%t/Library.swiftinterface) -module-name Library
|
|
// RUN: %FileCheck %s --check-prefixes=CHECK < %t/Library.swiftinterface
|
|
|
|
// CHECK-LABEL: public actor TestActor {
|
|
@available(SwiftStdlib 5.5, *)
|
|
public actor TestActor {
|
|
// FIXME: The convenience keyword should be omitted (rdar://130926278)
|
|
// CHECK: public convenience init(convenience: Swift.Int)
|
|
public init(convenience: Int) {
|
|
self.init()
|
|
}
|
|
// CHECK: public init()
|
|
public init() {}
|
|
}
|