16
16
// RUN: -swift-version 5 -enable-library-evolution
17
17
// RUN: %target-swift-frontend -emit-module %t/PrivateLib.swift -o %t \
18
18
// RUN: -swift-version 5 -enable-library-evolution
19
+ // RUN: %target-swift-frontend -emit-module %t/LibX.swift -o %t \
20
+ // RUN: -swift-version 5 -enable-library-evolution
21
+ // RUN: %target-swift-frontend -emit-module %t/LibY.swift -o %t \
22
+ // RUN: -swift-version 5 -enable-library-evolution
23
+ // RUN: %target-swift-frontend -emit-module %t/LibZ.swift -o %t \
24
+ // RUN: -swift-version 5 -enable-library-evolution
25
+ // RUN: %target-swift-frontend -emit-module %t/LibS.swift -o %t \
26
+ // RUN: -swift-version 5 -enable-library-evolution
27
+ // RUN: %target-swift-frontend -emit-module %t/LibT.swift -o %t \
28
+ // RUN: -swift-version 5 -enable-library-evolution
29
+ // RUN: %target-swift-frontend -emit-module %t/LibU.swift -o %t \
30
+ // RUN: -swift-version 5 -enable-library-evolution
31
+ // RUN: %target-swift-frontend -emit-module %t/LibV.swift -o %t \
32
+ // RUN: -swift-version 5 -enable-library-evolution
19
33
20
34
/// Build client and generate swiftinterfaces.
21
35
// RUN: %target-swift-frontend -typecheck %t/Client.swift -I %t \
22
36
// RUN: -package-name TestPackage \
23
37
// RUN: -enable-library-evolution -swift-version 5 \
24
38
// RUN: -emit-module-interface-path %t/Client.swiftinterface \
25
- // RUN: -emit-private-module-interface-path %t/Client.private.swiftinterface
39
+ // RUN: -emit-private-module-interface-path %t/Client.private.swiftinterface \
40
+ // RUN: -emit-package-module-interface-path %t/Client.package.swiftinterface
26
41
27
42
// RUN: %target-swift-typecheck-module-from-interface(%t/Client.swiftinterface) -I %t
28
43
// RUN: %target-swift-typecheck-module-from-interface(%t/Client.private.swiftinterface) -I %t \
29
44
// RUN: -module-name Client
45
+ // RUN: %target-swift-typecheck-module-from-interface(%t/Client.package.swiftinterface) -I %t \
46
+ // RUN: -module-name Client
30
47
31
48
// RUN: %FileCheck --check-prefixes=CHECK,CHECK-5 %s < %t/Client.swiftinterface
32
49
// RUN: %FileCheck --check-prefixes=CHECK,CHECK-5 %s < %t/Client.private.swiftinterface
50
+ // RUN: %FileCheck --check-prefixes=CHECK-5-PKG %s < %t/Client.package.swiftinterface
33
51
34
52
/// Build a client composed of many files.
35
53
// RUN: %target-swift-frontend -typecheck %t/MultiFiles?.swift -I %t \
36
54
// RUN: -package-name TestPackage \
55
+ // RUN: -experimental-spi-only-imports \
37
56
// RUN: -enable-library-evolution -swift-version 5 \
38
57
// RUN: -emit-module-interface-path %t/MultiFiles.swiftinterface \
39
- // RUN: -emit-private-module-interface-path %t/MultiFiles.private.swiftinterface
58
+ // RUN: -emit-private-module-interface-path %t/MultiFiles.private.swiftinterface \
59
+ // RUN: -emit-package-module-interface-path %t/MultiFiles.package.swiftinterface
40
60
41
61
// RUN: %target-swift-typecheck-module-from-interface(%t/MultiFiles.swiftinterface) -I %t
42
62
// RUN: %target-swift-typecheck-module-from-interface(%t/MultiFiles.private.swiftinterface) -I %t \
43
63
// RUN: -module-name MultiFiles
64
+ // RUN: %target-swift-typecheck-module-from-interface(%t/MultiFiles.package.swiftinterface) -I %t \
65
+ // RUN: -module-name MultiFiles
44
66
45
- // RUN: %FileCheck --check-prefixes=CHECK,CHECK-5 %s < %t/MultiFiles.swiftinterface
46
- // RUN: %FileCheck --check-prefixes=CHECK,CHECK-5 %s < %t/MultiFiles.private.swiftinterface
67
+ // RUN: %FileCheck --check-prefixes=CHECK-5-MUL %s < %t/MultiFiles.swiftinterface
68
+ // RUN: %FileCheck --check-prefixes=CHECK-5-MUL-PRV %s < %t/MultiFiles.private.swiftinterface
69
+ // RUN: %FileCheck --check-prefixes=CHECK-5-MUL-PKG %s < %t/MultiFiles.package.swiftinterface
47
70
48
71
/// Swift 6 mode.
49
72
// RUN: %target-swift-frontend -typecheck %t/Client.swift -I %t \
50
73
// RUN: -package-name TestPackage -module-name Client_Swift6 \
51
74
// RUN: -enable-library-evolution -swift-version 6 \
52
75
// RUN: -emit-module-interface-path %t/Client_Swift6.swiftinterface \
53
- // RUN: -emit-private-module-interface-path %t/Client_Swift6.private.swiftinterface
76
+ // RUN: -emit-private-module-interface-path %t/Client_Swift6.private.swiftinterface \
77
+ // RUN: -emit-package-module-interface-path %t/Client_Swift6.package.swiftinterface
54
78
55
79
// RUN: %target-swift-typecheck-module-from-interface(%t/Client_Swift6.swiftinterface) -I %t
56
80
// RUN: %target-swift-typecheck-module-from-interface(%t/Client_Swift6.private.swiftinterface) -I %t \
57
81
// RUN: -module-name Client_Swift6
82
+ // RUN: %target-swift-typecheck-module-from-interface(%t/Client_Swift6.package.swiftinterface) -I %t \
83
+ // RUN: -module-name Client_Swift6
58
84
59
85
// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-6 < %t/Client_Swift6.swiftinterface
60
86
// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-6 < %t/Client_Swift6.private.swiftinterface
87
+ // RUN: %FileCheck %s --check-prefixes=CHECK-6-PKG < %t/Client_Swift6.package.swiftinterface
61
88
62
89
/// Feature flag.
63
90
// RUN: %target-swift-frontend -typecheck %t/Client.swift -I %t \
64
91
// RUN: -package-name TestPackage -module-name Client_FeatureFlag \
65
92
// RUN: -enable-library-evolution -swift-version 5 \
66
93
// RUN: -emit-module-interface-path %t/Client_FeatureFlag.swiftinterface \
67
94
// RUN: -emit-private-module-interface-path %t/Client_FeatureFlag.private.swiftinterface \
95
+ // RUN: -emit-package-module-interface-path %t/Client_FeatureFlag.package.swiftinterface \
68
96
// RUN: -enable-upcoming-feature InternalImportsByDefault
69
97
70
98
// RUN: %target-swift-typecheck-module-from-interface(%t/Client_FeatureFlag.swiftinterface) -I %t
71
99
// RUN: %target-swift-typecheck-module-from-interface(%t/Client_FeatureFlag.private.swiftinterface) -I %t \
72
100
// RUN: -module-name Client_FeatureFlag
101
+ // RUN: %target-swift-typecheck-module-from-interface(%t/Client_FeatureFlag.package.swiftinterface) -I %t \
102
+ // RUN: -module-name Client_FeatureFlag
73
103
74
104
// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-6,CHECK-FLAG < %t/Client_FeatureFlag.swiftinterface
75
105
// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-6,CHECK-FLAG < %t/Client_FeatureFlag.private.swiftinterface
106
+ // RUN: %FileCheck %s --check-prefixes=CHECK-6-PKG,CHECK-FLAG < %t/Client_FeatureFlag.package.swiftinterface
107
+
108
+ /// Build a client with multiple files.
109
+ // RUN: %target-swift-frontend -typecheck %t/MultiFiles?.swift -I %t \
110
+ // RUN: -package-name TestPackage -module-name MultiFiles_Swift6 \
111
+ // RUN: -experimental-spi-only-imports -experimental-spi-imports \
112
+ // RUN: -enable-library-evolution -swift-version 6 \
113
+ // RUN: -emit-module-interface-path %t/MultiFiles_Swift6.swiftinterface \
114
+ // RUN: -emit-private-module-interface-path %t/MultiFiles_Swift6.private.swiftinterface \
115
+ // RUN: -emit-package-module-interface-path %t/MultiFiles_Swift6.package.swiftinterface
116
+
117
+ // RUN: %target-swift-typecheck-module-from-interface(%t/MultiFiles_Swift6.swiftinterface) -I %t
118
+ // RUN: %target-swift-typecheck-module-from-interface(%t/MultiFiles_Swift6.private.swiftinterface) -I %t \
119
+ // RUN: -module-name MultiFiles_Swift6
120
+ // RUN: %target-swift-typecheck-module-from-interface(%t/MultiFiles_Swift6.package.swiftinterface) -I %t \
121
+ // RUN: -module-name MultiFiles_Swift6
122
+
123
+ // RUN: %FileCheck --check-prefixes=CHECK-6-MUL %s < %t/MultiFiles_Swift6.swiftinterface
124
+ // RUN: %FileCheck --check-prefixes=CHECK-6-MUL-PRV %s < %t/MultiFiles_Swift6.private.swiftinterface
125
+ // RUN: %FileCheck --check-prefixes=CHECK-6-MUL-PKG %s < %t/MultiFiles_Swift6.package.swiftinterface
76
126
77
127
//--- PublicLib.swift
78
128
//--- PackageLib.swift
79
129
//--- InternalLib.swift
80
130
//--- FileprivateLib.swift
81
131
//--- PrivateLib.swift
132
+ //--- LibX.swift
133
+ //--- LibY.swift
134
+ //--- LibZ.swift
135
+ //--- LibS.swift
136
+ //--- LibT.swift
137
+ //--- LibU.swift
138
+ //--- LibV.swift
82
139
83
140
//--- Client.swift
141
+
84
142
// CHECK-5-NOT: public
143
+ // CHECK-5-PKG: package import PackageLib
144
+ // CHECK-5-PKG: import PublicLib
145
+
85
146
// CHECK-FLAG: -enable-upcoming-feature InternalImportsByDefault
86
147
// CHECK-6: public
148
+ // CHECK-6-PKG: package import PackageLib
149
+ // CHECK-6-PKG: public import PublicLib
87
150
88
151
public import PublicLib
89
152
// CHECK: PublicLib
@@ -101,9 +164,74 @@ private import PrivateLib
101
164
// CHECK-NOT: PrivateLib
102
165
103
166
//--- MultiFilesA.swift
167
+
104
168
public import PublicLib
169
+ package import PackageLib
105
170
private import InternalLib
171
+ public import LibX
172
+ @_exported public import LibY
173
+ internal import LibZ
174
+ @_spiOnly public import LibS
175
+ @_spiOnly public import LibT
176
+ @_spi ( Lib) public import LibU
177
+ @_spi ( Lib) public import LibV
106
178
107
179
//--- MultiFilesB.swift
180
+
108
181
internal import PublicLib
182
+ internal import PackageLib
109
183
internal import InternalLib
184
+ package import LibX
185
+ package import LibY
186
+ fileprivate import LibZ
187
+ package import LibS
188
+ internal import LibT
189
+ package import LibU
190
+ internal import LibV
191
+
192
+ // CHECK-5-MUL-NOT: public
193
+ // CHECK-5-MUL: import LibU
194
+ // CHECK-5-MUL: import LibV
195
+ // CHECK-5-MUL: import LibX
196
+ // CHECK-5-MUL: @_exported import LibY
197
+ // CHECK-5-MUL: import PublicLib
198
+
199
+ // CHECK-6-MUL: public import LibU
200
+ // CHECK-6-MUL: public import LibV
201
+ // CHECK-6-MUL: public import LibX
202
+ // CHECK-6-MUL: @_exported public import LibY
203
+ // CHECK-6-MUL: public import PublicLib
204
+
205
+ // CHECK-5-MUL-PKG: @_spiOnly import LibS
206
+ // CHECK-5-MUL-PKG: @_spiOnly import LibT
207
+ // CHECK-5-MUL-PKG: @_spi(Lib) import LibU
208
+ // CHECK-5-MUL-PKG: @_spi(Lib) import LibV
209
+ // CHECK-5-MUL-PKG: import LibX
210
+ // CHECK-5-MUL-PKG: @_exported import LibY
211
+ // CHECK-5-MUL-PKG: package import PackageLib
212
+ // CHECK-5-MUL-PKG: import PublicLib
213
+
214
+ // CHECK-6-MUL-PKG: @_spiOnly public import LibS
215
+ // CHECK-6-MUL-PKG: @_spiOnly public import LibT
216
+ // CHECK-6-MUL-PKG: @_spi(Lib) public import LibU
217
+ // CHECK-6-MUL-PKG: @_spi(Lib) public import LibV
218
+ // CHECK-6-MUL-PKG: public import LibX
219
+ // CHECK-6-MUL-PKG: @_exported public import LibY
220
+ // CHECK-6-MUL-PKG: package import PackageLib
221
+ // CHECK-6-MUL-PKG: public import PublicLib
222
+
223
+ // CHECK-5-MUL-PRV: @_spiOnly import LibS
224
+ // CHECK-5-MUL-PRV: @_spiOnly import LibT
225
+ // CHECK-5-MUL-PRV: @_spi(Lib) import LibU
226
+ // CHECK-5-MUL-PRV: @_spi(Lib) import LibV
227
+ // CHECK-5-MUL-PRV: import LibX
228
+ // CHECK-5-MUL-PRV: @_exported import LibY
229
+ // CHECK-5-MUL-PRV: import PublicLib
230
+
231
+ // CHECK-6-MUL-PRV: @_spiOnly public import LibS
232
+ // CHECK-6-MUL-PRV: @_spiOnly public import LibT
233
+ // CHECK-6-MUL-PRV: @_spi(Lib) public import LibU
234
+ // CHECK-6-MUL-PRV: @_spi(Lib) public import LibV
235
+ // CHECK-6-MUL-PRV: public import LibX
236
+ // CHECK-6-MUL-PRV: @_exported public import LibY
237
+ // CHECK-6-MUL-PRV: public import PublicLib
0 commit comments