mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Actor inheritance was removed in the second revision of SE-0306. Remove the ability to inherit actors. Note that this doesn't fully eliminate all vestigates of inheritance from actors. There are simplifications that need to be performed still, e.g., there's no need to distinguish designated/convenience/required initializers. That will follow.
41 lines
1.4 KiB
Swift
41 lines
1.4 KiB
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: %target-swift-frontend -emit-module -o %t/Test.swiftmodule -emit-module-interface-path %t/Test.swiftinterface -module-name Test -enable-experimental-concurrency %s
|
|
// RUN: %FileCheck %s < %t/Test.swiftinterface
|
|
// RUN: %target-swift-frontend -typecheck-module-from-interface -module-name Test %t/Test.swiftinterface
|
|
|
|
// RUN: %target-swift-frontend -emit-module -o /dev/null -merge-modules %t/Test.swiftmodule -disable-objc-attr-requires-foundation-module -emit-module-interface-path %t/TestFromModule.swiftinterface -module-name Test -enable-experimental-concurrency
|
|
// RUN: %FileCheck %s < %t/TestFromModule.swiftinterface
|
|
// RUN: %target-swift-frontend -typecheck-module-from-interface -module-name Test %t/TestFromModule.swiftinterface
|
|
|
|
// REQUIRES: concurrency
|
|
|
|
// CHECK: public actor SomeActor
|
|
public actor SomeActor {
|
|
@actorIndependent func maine() { }
|
|
}
|
|
|
|
// CHECK: @globalActor public struct SomeGlobalActor
|
|
@globalActor
|
|
public struct SomeGlobalActor {
|
|
public static let shared = SomeActor()
|
|
}
|
|
|
|
// CHECK: @{{(Test.)?}}SomeGlobalActor public protocol P1
|
|
// CHECK-NEXT: @{{(Test.)?}}SomeGlobalActor func method()
|
|
@SomeGlobalActor
|
|
public protocol P1 {
|
|
func method()
|
|
}
|
|
|
|
// CHECK: class C1
|
|
// CHECK-NEXT: @{{(Test.)?}}SomeGlobalActor public func method()
|
|
public class C1: P1 {
|
|
public func method() { }
|
|
}
|
|
|
|
@SomeGlobalActor
|
|
public class C2 { }
|
|
|
|
// CHECK: @{{(Test.)?}}SomeGlobalActor public class C2
|
|
public class C3: C2 { }
|