1616// RUN: -swift-version 5 -enable-library-evolution
1717// RUN: %target-swift-frontend -emit-module %t/PrivateLib.swift -o %t \
1818// 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
1933
2034/// Build client and generate swiftinterfaces.
2135// RUN: %target-swift-frontend -typecheck %t/Client.swift -I %t \
2236// RUN: -package-name TestPackage \
2337// RUN: -enable-library-evolution -swift-version 5 \
2438// 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
2641
2742// RUN: %target-swift-typecheck-module-from-interface(%t/Client.swiftinterface) -I %t
2843// RUN: %target-swift-typecheck-module-from-interface(%t/Client.private.swiftinterface) -I %t \
2944// RUN: -module-name Client
45+ // RUN: %target-swift-typecheck-module-from-interface(%t/Client.package.swiftinterface) -I %t \
46+ // RUN: -module-name Client
3047
3148// RUN: %FileCheck --check-prefixes=CHECK,CHECK-5 %s < %t/Client.swiftinterface
3249// 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
3351
3452/// Build a client composed of many files.
3553// RUN: %target-swift-frontend -typecheck %t/MultiFiles?.swift -I %t \
3654// RUN: -package-name TestPackage \
55+ // RUN: -experimental-spi-only-imports \
3756// RUN: -enable-library-evolution -swift-version 5 \
3857// 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
4060
4161// RUN: %target-swift-typecheck-module-from-interface(%t/MultiFiles.swiftinterface) -I %t
4262// RUN: %target-swift-typecheck-module-from-interface(%t/MultiFiles.private.swiftinterface) -I %t \
4363// RUN: -module-name MultiFiles
64+ // RUN: %target-swift-typecheck-module-from-interface(%t/MultiFiles.package.swiftinterface) -I %t \
65+ // RUN: -module-name MultiFiles
4466
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
4770
4871/// Swift 6 mode.
4972// RUN: %target-swift-frontend -typecheck %t/Client.swift -I %t \
5073// RUN: -package-name TestPackage -module-name Client_Swift6 \
5174// RUN: -enable-library-evolution -swift-version 6 \
5275// 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
5478
5579// RUN: %target-swift-typecheck-module-from-interface(%t/Client_Swift6.swiftinterface) -I %t
5680// RUN: %target-swift-typecheck-module-from-interface(%t/Client_Swift6.private.swiftinterface) -I %t \
5781// 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
5884
5985// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-6 < %t/Client_Swift6.swiftinterface
6086// 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
6188
6289/// Feature flag.
6390// RUN: %target-swift-frontend -typecheck %t/Client.swift -I %t \
6491// RUN: -package-name TestPackage -module-name Client_FeatureFlag \
6592// RUN: -enable-library-evolution -swift-version 5 \
6693// RUN: -emit-module-interface-path %t/Client_FeatureFlag.swiftinterface \
6794// RUN: -emit-private-module-interface-path %t/Client_FeatureFlag.private.swiftinterface \
95+ // RUN: -emit-package-module-interface-path %t/Client_FeatureFlag.package.swiftinterface \
6896// RUN: -enable-upcoming-feature InternalImportsByDefault
6997
7098// RUN: %target-swift-typecheck-module-from-interface(%t/Client_FeatureFlag.swiftinterface) -I %t
7199// RUN: %target-swift-typecheck-module-from-interface(%t/Client_FeatureFlag.private.swiftinterface) -I %t \
72100// 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
73103
74104// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-6,CHECK-FLAG < %t/Client_FeatureFlag.swiftinterface
75105// 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
76126
77127//--- PublicLib.swift
78128//--- PackageLib.swift
79129//--- InternalLib.swift
80130//--- FileprivateLib.swift
81131//--- PrivateLib.swift
132+ //--- LibX.swift
133+ //--- LibY.swift
134+ //--- LibZ.swift
135+ //--- LibS.swift
136+ //--- LibT.swift
137+ //--- LibU.swift
138+ //--- LibV.swift
82139
83140//--- Client.swift
141+
84142// CHECK-5-NOT: public
143+ // CHECK-5-PKG: package import PackageLib
144+ // CHECK-5-PKG: import PublicLib
145+
85146// CHECK-FLAG: -enable-upcoming-feature InternalImportsByDefault
86147// CHECK-6: public
148+ // CHECK-6-PKG: package import PackageLib
149+ // CHECK-6-PKG: public import PublicLib
87150
88151public import PublicLib
89152// CHECK: PublicLib
@@ -101,9 +164,74 @@ private import PrivateLib
101164// CHECK-NOT: PrivateLib
102165
103166//--- MultiFilesA.swift
167+
104168public import PublicLib
169+ package import PackageLib
105170private 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
106178
107179//--- MultiFilesB.swift
180+
108181internal import PublicLib
182+ internal import PackageLib
109183internal 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