|
1 | 1 | // RUN: %empty-directory(%t)
|
2 |
| -// RUN: split-file %s %t |
3 | 2 |
|
4 |
| -/// By default, package-name is only printed in package interface |
5 |
| -// RUN: %target-build-swift -emit-module %t/Bar.swift -I %t \ |
| 3 | +/// Do not print package-name for public or private interfaces |
| 4 | +// RUN: %target-build-swift -emit-module %s -I %t \ |
6 | 5 | // RUN: -module-name Bar -package-name foopkg \
|
7 | 6 | // RUN: -enable-library-evolution -swift-version 6 \
|
8 | 7 | // RUN: -package-name barpkg \
|
| 8 | +// RUN: -Xfrontend -disable-print-package-name-for-non-package-interface \ |
9 | 9 | // RUN: -emit-module-interface-path %t/Bar.swiftinterface \
|
10 | 10 | // RUN: -emit-private-module-interface-path %t/Bar.private.swiftinterface \
|
11 | 11 | // RUN: -emit-package-module-interface-path %t/Bar.package.swiftinterface
|
|
22 | 22 | // CHECK-PRIVATE-NOT: pkgVar
|
23 | 23 | // CHECK-PACKAGE-NOT: -package-name foopkg
|
24 | 24 |
|
25 |
| -// CHECK-PUBLIC: -enable-library-evolution -swift-version 6 -module-name Bar |
26 |
| -// CHECK-PRIVATE: -enable-library-evolution -swift-version 6 -module-name Bar |
27 |
| -// CHECK-PACKAGE: -enable-library-evolution -swift-version 6 -module-name Bar -package-name barpkg |
| 25 | +// CHECK-PUBLIC: -enable-library-evolution -swift-version 6 -disable-print-package-name-for-non-package-interface -module-name Bar |
| 26 | +// CHECK-PRIVATE: -enable-library-evolution -swift-version 6 -disable-print-package-name-for-non-package-interface -module-name Bar |
| 27 | +// CHECK-PACKAGE: -enable-library-evolution -swift-version 6 -disable-print-package-name-for-non-package-interface -module-name Bar -package-name barpkg |
28 | 28 |
|
29 | 29 | /// Typechecking interface files (without package-name in non-package interface) should succeed.
|
30 | 30 | // RUN: %target-swift-frontend -typecheck-module-from-interface %t/Bar.swiftinterface
|
|
33 | 33 |
|
34 | 34 | /// Verify building modules from non-package interfaces succeeds without the package-name flag.
|
35 | 35 | // RUN: %target-swift-frontend -compile-module-from-interface %t/Bar.swiftinterface -o %t/Bar.swiftmodule -module-name Bar
|
36 |
| -// RUN: %target-swift-frontend -typecheck %t/Use.swift -I %t -verify |
37 |
| -// RUN: %target-swift-frontend -typecheck %t/Use.swift -I %t -package-name barpkg -verify |
38 |
| - |
39 | 36 | // RUN: rm -rf %t/Bar.swiftmodule
|
40 | 37 | // RUN: %target-swift-frontend -compile-module-from-interface %t/Bar.private.swiftinterface -o %t/Bar.swiftmodule -module-name Bar
|
41 |
| -// RUN: %target-swift-frontend -typecheck %t/Use.swift -I %t -verify |
42 |
| -// RUN: %target-swift-frontend -typecheck %t/Use.swift -I %t -package-name barpkg -verify |
43 |
| - |
44 | 38 | // RUN: rm -rf %t/Bar.swiftmodule
|
45 | 39 | // RUN: %target-swift-frontend -compile-module-from-interface %t/Bar.package.swiftinterface -o %t/Bar.swiftmodule -module-name Bar
|
46 |
| -// RUN: %target-swift-frontend -typecheck %t/Use.swift -I %t -package-name barpkg -experimental-package-interface-load -verify |
47 | 40 |
|
48 | 41 | // RUN: rm -rf %t/Bar.swiftmodule
|
49 | 42 | // RUN: rm -rf %t/Bar.swiftinterface
|
50 | 43 | // RUN: rm -rf %t/Bar.private.swiftinterface
|
51 | 44 | // RUN: rm -rf %t/Bar.package.swiftinterface
|
52 | 45 |
|
53 |
| -/// Print -package-name in public or private interface. |
54 |
| -/// Note the order of arguments differs across old/new driver, so force old |
55 |
| -/// driver for now. |
| 46 | +/// By default, -package-name is printed in all interfaces. |
56 | 47 | // RUN: env SWIFT_USE_OLD_DRIVER=1 %target-build-swift \
|
57 |
| -// RUN: -emit-module %t/Bar.swift -I %t \ |
| 48 | +// RUN: -emit-module %s -I %t \ |
58 | 49 | // RUN: -module-name Bar -package-name barpkg \
|
59 | 50 | // RUN: -enable-library-evolution -swift-version 6 \
|
60 |
| -// RUN: -Xfrontend -print-package-name-in-non-package-interface \ |
61 | 51 | // RUN: -emit-module-interface-path %t/Bar.swiftinterface \
|
62 | 52 | // RUN: -emit-private-module-interface-path %t/Bar.private.swiftinterface \
|
63 | 53 | // RUN: -emit-package-module-interface-path %t/Bar.package.swiftinterface
|
|
70 | 60 |
|
71 | 61 | /// Building modules from non-package interfaces with package-name (default mode) should succeed.
|
72 | 62 | // RUN: %target-swift-frontend -compile-module-from-interface %t/Bar.swiftinterface -o %t/Bar.swiftmodule -module-name Bar
|
73 |
| -// RUN: %target-swift-frontend -typecheck %t/ExpectFail.swift -I %t -package-name barpkg -verify |
74 |
| - |
75 | 63 | // RUN: rm -rf %t/Bar.swiftmodule
|
76 | 64 | // RUN: %target-swift-frontend -compile-module-from-interface %t/Bar.private.swiftinterface -o %t/Bar.swiftmodule -module-name Bar
|
77 |
| -// RUN: %target-swift-frontend -typecheck %t/ExpectFail.swift -I %t -package-name barpkg -verify |
78 |
| - |
79 | 65 | // RUN: rm -rf %t/Bar.swiftmodule
|
80 | 66 | // RUN: %target-swift-frontend -compile-module-from-interface %t/Bar.package.swiftinterface -o %t/Bar.swiftmodule -module-name Bar
|
81 |
| -// RUN: %target-swift-frontend -typecheck %t/Use.swift -I %t -package-name barpkg -experimental-package-interface-load -verify |
82 |
| - |
83 |
| -//--- Bar.swift |
84 |
| -public struct PubStruct { |
85 |
| - public var pubVar: Int |
86 |
| - package var pkgVar: Int |
87 |
| -} |
88 | 67 |
|
| 68 | +public struct PubStruct {} |
89 | 69 | @_spi(bar) public struct SPIStruct {}
|
90 | 70 |
|
91 | 71 | package struct PkgStruct {}
|
92 |
| - |
93 |
| -@usableFromInline |
94 |
| -package struct UfiPkgStruct { |
95 |
| - @usableFromInline |
96 |
| - package var ufiPkgVar: PubStruct |
97 |
| - |
98 |
| - package var pkgVar: PubStruct |
99 |
| - |
100 |
| - @usableFromInline |
101 |
| - package init(_ x: PubStruct, _ y: PubStruct) { |
102 |
| - ufiPkgVar = x |
103 |
| - pkgVar = y |
104 |
| - } |
105 |
| -} |
106 |
| - |
107 |
| - |
108 |
| -//--- Use.swift |
109 |
| -import Bar |
110 |
| - |
111 |
| -func use(_ arg: PubStruct) -> PubStruct { |
112 |
| - return UfiPkgStruct(arg, arg).ufiPkgVar |
113 |
| -} |
114 |
| - |
115 |
| -//--- ExpectFail.swift |
116 |
| -import Bar // expected-error {{module 'Bar' is in package 'barpkg' but was built from a non-package interface; modules of the same package can only be loaded if built from source or package interface}} |
117 |
| - |
118 |
| -func use(_ arg: PubStruct) -> PubStruct { |
119 |
| - return UfiPkgStruct(arg, arg).ufiPkgVar |
120 |
| -} |
0 commit comments