|
1 | | -/// Test the textual interfaces generated with -experimental-spi-imports. |
| 1 | +// RUN: %target-swift-frontend -typecheck %s -swift-version 5 \ |
| 2 | +// RUN: -experimental-spi-imports 2>&1 | %FileCheck %s -check-prefix=CHECK-5 |
2 | 3 |
|
3 | | -// RUN: %empty-directory(%t) |
4 | | - |
5 | | -/// Generate 3 empty modules. |
6 | | -// RUN: touch %t/empty.swift |
7 | | -// RUN: %target-swift-frontend -emit-module %S/Inputs/ioi_helper.swift -module-name ExperimentalImported -emit-module-path %t/ExperimentalImported.swiftmodule -swift-version 5 -enable-library-evolution |
8 | | -// RUN: %target-swift-frontend -emit-module %t/empty.swift -module-name IOIImported -emit-module-path %t/IOIImported.swiftmodule -swift-version 5 -enable-library-evolution |
9 | | -// RUN: %target-swift-frontend -emit-module %t/empty.swift -module-name SPIImported -emit-module-path %t/SPIImported.swiftmodule -swift-version 5 -enable-library-evolution |
10 | | -// RUN: %target-swift-frontend -emit-module %t/empty.swift -module-name InconsistentlyImported -emit-module-path %t/InconsistentlyImported.swiftmodule -swift-version 5 -enable-library-evolution |
11 | | - |
12 | | -/// Test the generated swiftinterface. |
13 | | -// RUN: %target-swift-frontend -typecheck %s %S/Inputs/experimental_spi_imports_inconsistent.swift -emit-module-interface-path %t/main.swiftinterface -emit-private-module-interface-path %t/main.private.swiftinterface -enable-library-evolution -swift-version 5 -I %t -experimental-spi-imports |
14 | | -// RUN: %target-swift-typecheck-module-from-interface(%t/main.swiftinterface) -I %t |
15 | | -// RUN: %target-swift-typecheck-module-from-interface(%t/main.private.swiftinterface) -I %t |
16 | | -// RUN: %FileCheck -check-prefix=CHECK-PUBLIC %s < %t/main.swiftinterface |
17 | | -// RUN: %FileCheck -check-prefix=CHECK-PRIVATE %s < %t/main.private.swiftinterface |
18 | | - |
19 | | -/// The flag is rejected in Swift 6. |
20 | | -// RUN: not %target-swift-frontend -typecheck % -swift-version 6 \ |
| 4 | +// RUN: not %target-swift-frontend -typecheck %s -swift-version 6 \ |
21 | 5 | // RUN: -experimental-spi-imports 2>&1 | %FileCheck %s -check-prefix=CHECK-6 |
22 | | -// CHECK-6: error: '-experimental-spi-imports' is unsupported in Swift 6, use '@_spiOnly' instead |
23 | 6 |
|
24 | | -@_spi(dummy) @_implementationOnly import ExperimentalImported |
25 | | -// CHECK-PUBLIC-NOT: import ExperimentalImported |
26 | | -// CHECK-PRIVATE: @_implementationOnly @_spi{{.*}} import ExperimentalImported |
| 7 | +/// The flag is deprecated before Swift 6. |
| 8 | +// CHECK-5: flag '-experimental-spi-imports' is deprecated |
27 | 9 |
|
28 | | -// This is also imported as implementation-only via another source file. |
29 | | -import InconsistentlyImported |
30 | | -// CHECK-PUBLIC: {{^}}import InconsistentlyImported |
31 | | -// CHECK-PRIVATE: {{^}}import InconsistentlyImported |
32 | | - |
33 | | -@_implementationOnly import IOIImported |
34 | | -// CHECK-PUBLIC-NOT: IOIImported |
35 | | -// CHECK-PRIVATE-NOT: IOIImported |
36 | | - |
37 | | -@_spi(dummy) import SPIImported |
38 | | -// CHECK-PUBLIC: {{^}}import SPIImported |
39 | | -// CHECK-PRIVATE: @_spi{{.*}} import SPIImported |
40 | | - |
41 | | -@_spi(X) |
42 | | -extension IOIPublicStruct { |
43 | | - public func foo() {} |
44 | | -} |
45 | | -// CHECK-PUBLIC-NOT: ExperimentalImported.IOIPublicStruct |
46 | | -// CHECK-PRIVATE: @_spi{{.*}} extension ExperimentalImported.IOIPublicStruct |
| 10 | +/// The flag is rejected in Swift 6. |
| 11 | +// CHECK-6: flag '-experimental-spi-imports' is unsupported |
0 commit comments