mirror of
https://github.com/apple/swift.git
synced 2026-02-27 18:26:24 +01:00
Simplify a few tests that were making heavy use of availability annotations that can be avoided by setting a Swift release aligned deployment target.
45 lines
1.6 KiB
Swift
45 lines
1.6 KiB
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: %target-swift-frontend-emit-module -emit-module-path %t/FakeDistributedActorSystems.swiftmodule -module-name FakeDistributedActorSystems -target %target-swift-5.7-abi-triple %S/Inputs/FakeDistributedActorSystems.swift
|
|
// RUN: %target-swift-frontend -emit-irgen -module-name distributed_actor_accessors -target %target-swift-5.7-abi-triple -I %t 2>&1 %s | %IRGenFileCheck %s
|
|
|
|
// UNSUPPORTED: back_deploy_concurrency
|
|
// REQUIRES: concurrency
|
|
// REQUIRES: distributed
|
|
|
|
import Distributed
|
|
import FakeDistributedActorSystems
|
|
|
|
typealias DefaultDistributedActorSystem = FakeActorSystem
|
|
|
|
class MyClass { }
|
|
|
|
// Ensure that the actor layout is (metadata pointer, default actor, id, system,
|
|
// <user fields>)
|
|
|
|
protocol HasActorSystem {
|
|
var actorSystem: FakeActorSystem { get }
|
|
}
|
|
|
|
extension MyActor: HasActorSystem { }
|
|
|
|
// CHECK: %T27distributed_actor_accessors7MyActorC = type <{ %swift.refcounted, %swift.defaultactor, %T27FakeDistributedActorSystems0C7AddressV, %T27FakeDistributedActorSystems0aC6SystemV, ptr }>
|
|
public distributed actor MyActor {
|
|
var field: MyClass = MyClass()
|
|
|
|
init(actorSystem: FakeActorSystem) {
|
|
self.actorSystem = actorSystem
|
|
}
|
|
}
|
|
|
|
// This does not have the concrete fields in the IR type because the LocalTestingDistributedActorSystem
|
|
// is declared in Distributed, which means that it is compiled with library evolution turned on,
|
|
// which causes the type to be laid out at runtime.
|
|
public distributed actor MyActorInt {
|
|
public typealias ActorSystem = LocalTestingDistributedActorSystem
|
|
var field: String = ""
|
|
|
|
init(actorSystem: LocalTestingDistributedActorSystem) {
|
|
self.actorSystem = actorSystem
|
|
}
|
|
}
|