|
10 | 10 | // RUN: -emit-private-module-interface-path %t/Utils.private.swiftinterface
|
11 | 11 |
|
12 | 12 | // RUN: %target-swift-typecheck-module-from-interface(%t/Utils.swiftinterface) -I %t
|
13 |
| -// RUN: %FileCheck %s --check-prefix=CHECK-PUBLIC < %t/Utils.swiftinterface |
14 |
| -// CHECK-PUBLIC-NOT: -package-name swift-utils.log |
15 |
| -// CHECK-PUBLIC-NOT: package func packageFunc() |
16 |
| -// CHECK-PUBLIC: -module-name Utils |
17 |
| -// CHECK-PUBLIC: public func publicFunc() |
| 13 | +// RUN: %FileCheck %s --check-prefix=CHECK-PUBLIC-UTILS < %t/Utils.swiftinterface |
| 14 | + |
| 15 | +// CHECK-PUBLIC-UTILS-NOT: -package-name swift-utils.log |
| 16 | +// CHECK-PUBLIC-UTILS-NOT: package func packageFunc() |
| 17 | +// CHECK-PUBLIC-UTILS-NOT: package protocol PackageProto |
| 18 | +// CHECK-PUBLIC-UTILS-NOT: var pkgVar |
| 19 | +// CHECK-PUBLIC-UTILS-NOT: package class PackageKlass |
| 20 | +// CHECK-PUBLIC-UTILS-NOT: package var pkgVar |
| 21 | +// CHECK-PUBLIC-UTILS: -module-name Utils |
| 22 | +// CHECK-PUBLIC-UTILS: public func publicFunc() |
| 23 | +// CHECK-PUBLIC-UTILS: @usableFromInline |
| 24 | +// CHECK-PUBLIC-UTILS: package func ufiPackageFunc() |
| 25 | +// CHECK-PUBLIC-UTILS: @usableFromInline |
| 26 | +// CHECK-PUBLIC-UTILS: package protocol UfiPackageProto |
| 27 | +// CHECK-PUBLIC-UTILS: var ufiPkgVar |
| 28 | +// CHECK-PUBLIC-UTILS: @usableFromInline |
| 29 | +// CHECK-PUBLIC-UTILS: package class UfiPackageKlass |
| 30 | +// CHECK-PUBLIC-UTILS: @usableFromInline |
| 31 | +// CHECK-PUBLIC-UTILS: package var ufiPkgVar |
18 | 32 |
|
19 | 33 | // RUN: %target-swift-typecheck-module-from-interface(%t/Utils.private.swiftinterface) -module-name Utils -I %t
|
20 |
| -// RUN: %FileCheck %s --check-prefix=CHECK-PRIVATE < %t/Utils.private.swiftinterface |
| 34 | +// RUN: %FileCheck %s --check-prefix=CHECK-PRIVATE-UTILS < %t/Utils.private.swiftinterface |
| 35 | + |
| 36 | +// CHECK-PRIVATE-UTILS-NOT: package func packageFunc() |
| 37 | +// CHECK-PRIVATE-UTILS-NOT: package protocol PackageProto |
| 38 | +// CHECK-PRIVATE-UTILS-NOT: var pkgVar |
| 39 | +// CHECK-PRIVATE-UTILS-NOT: package class PackageKlass |
| 40 | +// CHECK-PRIVATE-UTILS-NOT: package var pkgVar |
| 41 | +// CHECK-PRIVATE-UTILS: -module-name Utils |
| 42 | +// CHECK-PRIVATE-UTILS: swift-module-flags-ignorable-private: -package-name swift-utils.log |
| 43 | +// CHECK-PRIVATE-UTILS: public func publicFunc() |
| 44 | +// CHECK-PRIVATE-UTILS: @usableFromInline |
| 45 | +// CHECK-PRIVATE-UTILS: package func ufiPackageFunc() |
| 46 | +// CHECK-PRIVATE-UTILS: @usableFromInline |
| 47 | +// CHECK-PRIVATE-UTILS: package protocol UfiPackageProto |
| 48 | +// CHECK-PRIVATE-UTILS: var ufiPkgVar |
| 49 | +// CHECK-PRIVATE-UTILS: @usableFromInline |
| 50 | +// CHECK-PRIVATE-UTILS: package class UfiPackageKlass |
| 51 | +// CHECK-PRIVATE-UTILS: @usableFromInline |
| 52 | +// CHECK-PRIVATE-UTILS: package var ufiPkgVar |
| 53 | + |
| 54 | +// RUN: %target-swift-frontend -emit-module %t/Client.swift \ |
| 55 | +// RUN: -module-name Client -swift-version 5 -I %t \ |
| 56 | +// RUN: -package-name swift-utils.log \ |
| 57 | +// RUN: -enable-library-evolution \ |
| 58 | +// RUN: -emit-module-path %t/Client.swiftmodule \ |
| 59 | +// RUN: -emit-module-interface-path %t/Client.swiftinterface \ |
| 60 | +// RUN: -emit-private-module-interface-path %t/Client.private.swiftinterface |
| 61 | + |
| 62 | +// RUN: rm -rf %t/Utils.swiftmodule |
| 63 | +// RUN: rm -rf %t/Client.swiftmodule |
21 | 64 |
|
22 |
| -// CHECK-PRIVATE-NOT: package func packageFunc() |
23 |
| -// CHECK-PRIVATE: swift-module-flags-ignorable-private: -package-name swift-utils.log |
24 |
| -// CHECK-PRIVATE: public func publicFunc() |
| 65 | +// RUN: %target-swift-typecheck-module-from-interface(%t/Client.swiftinterface) -I %t -verify |
| 66 | +// RUN: %FileCheck %s --check-prefix=CHECK-PUBLIC-CLIENT < %t/Client.swiftinterface |
| 67 | +// CHECK-PUBLIC-CLIENT-NOT: -package-name swift-utils.log |
| 68 | +// CHECK-PUBLIC-CLIENT: @inlinable public func clientFunc() |
| 69 | +// CHECK-PUBLIC-CLIENT: publicFunc() |
| 70 | +// CHECK-PUBLIC-CLIENT: ufiPackageFunc() |
| 71 | +// CHECK-PUBLIC-CLIENT: let u = UfiPackageKlass() |
| 72 | +// CHECK-PUBLIC-CLIENT: return u.ufiPkgVar |
| 73 | +// CHECK-PUBLIC-CLIENT: public class ClientKlass1 : Utils.UfiPackageProto |
| 74 | +// CHECK-PUBLIC-CLIENT: @usableFromInline |
| 75 | +// CHECK-PUBLIC-CLIENT: package var ufiPkgVar: Swift.String |
| 76 | +// CHECK-PUBLIC-CLIENT: public class ClientKlass2 : Utils.UfiPackageProto |
| 77 | +// CHECK-PUBLIC-CLIENT: public var ufiPkgVar: Swift.String |
| 78 | + |
| 79 | +// RUN: %target-swift-typecheck-module-from-interface(%t/Client.private.swiftinterface) -module-name Client -I %t -verify |
25 | 80 |
|
26 |
| -// RUN: %target-swift-frontend -typecheck %t/Client.swift -package-name swift-utils.log -I %t -verify |
27 | 81 |
|
28 | 82 | //--- Utils.swift
|
29 |
| -package func packageFunc() {} |
30 | 83 | public func publicFunc() {}
|
31 | 84 |
|
| 85 | +package func packageFunc() {} |
| 86 | +@usableFromInline |
| 87 | +package func ufiPackageFunc() {} |
| 88 | + |
| 89 | +package protocol PackageProto { |
| 90 | + var pkgVar: String { get set } |
| 91 | +} |
| 92 | +package class PackageKlass: PackageProto { |
| 93 | + package var pkgVar = "" |
| 94 | +} |
| 95 | + |
| 96 | +@usableFromInline |
| 97 | +package protocol UfiPackageProto { |
| 98 | + var ufiPkgVar: String { get set } |
| 99 | +} |
| 100 | + |
| 101 | +@usableFromInline |
| 102 | +package class UfiPackageKlass: UfiPackageProto { |
| 103 | + @usableFromInline |
| 104 | + package init() {} |
| 105 | + @usableFromInline |
| 106 | + package var ufiPkgVar = "" |
| 107 | +} |
| 108 | + |
| 109 | + |
32 | 110 | //--- Client.swift
|
33 | 111 | import Utils
|
34 | 112 |
|
35 |
| -func clientFunc() { |
36 |
| - packageFunc() |
| 113 | +@inlinable public func clientFunc() -> String { |
37 | 114 | publicFunc()
|
| 115 | + ufiPackageFunc() |
| 116 | + let u = UfiPackageKlass() |
| 117 | + return u.ufiPkgVar |
| 118 | +} |
| 119 | + |
| 120 | +public class ClientKlass1: UfiPackageProto { |
| 121 | + @usableFromInline |
| 122 | + package var ufiPkgVar = "B" |
| 123 | +} |
| 124 | + |
| 125 | +public class ClientKlass2: UfiPackageProto { |
| 126 | + public var ufiPkgVar = "C" |
38 | 127 | }
|
0 commit comments