mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
75 lines
2.4 KiB
Swift
75 lines
2.4 KiB
Swift
// RUN: %target-swift-frontend -swift-version 4 -enforce-exclusivity=checked %s -emit-ir -module-name CurrentModule -D CURRENT_MODULE | %FileCheck %s --check-prefix=CHECK-COMMON --check-prefix=CHECK-CURRENT --check-prefix=CHECK-CURRENT-%target-ptrsize
|
|
// RUN: %target-swift-frontend -swift-version 4 -enforce-exclusivity=checked %s -emit-ir -module-name OriginalModule | %FileCheck %s --check-prefix=CHECK-COMMON --check-prefix=CHECK-ORIGINAL --check-prefix=CHECK-ORIGINAL-%target-ptrsize
|
|
// REQUIRES: OS=macosx
|
|
|
|
#if CURRENT_MODULE
|
|
|
|
@available(OSX 10.8, *)
|
|
@_originallyDefinedIn(module: "OriginalModule", macOS 10.15)
|
|
public struct Entity {
|
|
public func addEntity(_ e: Entity) {}
|
|
public func removeEntity(_ e: Entity) {}
|
|
}
|
|
|
|
@available(OSX 10.8, *)
|
|
@_originallyDefinedIn(module: "OriginalModule", macOS 10.15)
|
|
public protocol Movable {
|
|
func MovableFuncFoo()
|
|
}
|
|
|
|
public protocol Unmoveable {}
|
|
|
|
@available(OSX 10.8, *)
|
|
@_originallyDefinedIn(module: "OriginalModule", macOS 10.15)
|
|
public class MovedClass: Movable, Unmoveable {
|
|
public func MovableFuncFoo() {}
|
|
}
|
|
|
|
public class UnmovableClass {}
|
|
|
|
#else
|
|
|
|
public struct Entity {
|
|
public func addEntity(_ e: Entity) {}
|
|
public func removeEntity(_ e: Entity) {}
|
|
}
|
|
|
|
public protocol Movable {
|
|
func MovableFuncFoo()
|
|
}
|
|
|
|
public protocol Unmoveable {}
|
|
|
|
public class MovedClass: Movable, Unmoveable {
|
|
public func MovableFuncFoo() {}
|
|
}
|
|
|
|
public class UnmovableClass {}
|
|
|
|
#endif
|
|
|
|
|
|
func entityClient() {
|
|
let root = Entity()
|
|
// CHECK-COMMON: call swiftcc void @"$s14OriginalModule6EntityVACycfC"()
|
|
let leaf = Entity()
|
|
// CHECK-COMMON: call swiftcc void @"$s14OriginalModule6EntityVACycfC"()
|
|
root.addEntity(leaf)
|
|
// CHECK-COMMON: call swiftcc void @"$s14OriginalModule6EntityV03addC0yyACF"()
|
|
let moved = MovedClass()
|
|
// CHECK-COMMON: call swiftcc ptr @"$s14OriginalModule10MovedClassCACycfC"
|
|
moved.MovableFuncFoo()
|
|
// CHECK-COMMON: call swiftcc void @"$s14OriginalModule10MovedClassC14MovableFuncFooyyF"
|
|
}
|
|
|
|
public func unmovableClient() {
|
|
let unmovable = UnmovableClass()
|
|
// CHECK-CURRENT-64: call swiftcc %swift.metadata_response @"$s13CurrentModule14UnmovableClassCMa"(i64 0)
|
|
// CHECK-ORIGINAL-64: call swiftcc %swift.metadata_response @"$s14OriginalModule14UnmovableClassCMa"(i64 0)
|
|
// CHECK-CURRENT-32: call swiftcc %swift.metadata_response @"$s13CurrentModule14UnmovableClassCMa"(i32 0)
|
|
// CHECK-ORIGINAL-32: call swiftcc %swift.metadata_response @"$s14OriginalModule14UnmovableClassCMa"(i32 0)
|
|
}
|
|
|
|
entityClient()
|
|
unmovableClient()
|