-
Notifications
You must be signed in to change notification settings - Fork 10.5k
/
Copy pathavailability_spi_library_level_spi.swift
35 lines (25 loc) · 1.25 KB
/
availability_spi_library_level_spi.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// REQUIRES: OS=macosx
// RUN: %target-swift-frontend -typecheck %s -F %S/Inputs/frameworks -verify -DNOT_UNDERLYING -parse-as-library -require-explicit-availability=ignore
// RUN: %target-swift-frontend -typecheck %s -F %S/Inputs/frameworks -verify -DNOT_UNDERLYING -library-level spi -parse-as-library -require-explicit-availability=ignore
// RUN: %target-swift-frontend -typecheck %s -F %S/Inputs/frameworks -module-name SPIContainer -import-underlying-module -verify -parse-as-library -require-explicit-availability=ignore
// RUN: %target-swift-frontend -typecheck %s -F %S/Inputs/frameworks -module-name SPIContainer -import-underlying-module -verify -library-level spi -parse-as-library -require-explicit-availability=ignore
#if NOT_UNDERLYING
import SPIContainer
#endif
@_spi(a) public let a: SPIInterface1 = .init()
@_spi(a) public let b: SPIInterface2 = .init()
public let c: SPIInterface1 = .init()
public let d: SPIInterface2 = .init()
@inlinable
public func inlinableUsingSPI() {
SharedInterface.foo()
}
@available(macOS, unavailable)
public let e: SPIInterface2 = .init()
@available(iOS, unavailable)
public let f: SPIInterface2 = .init()
@inlinable
@available(macOS, unavailable)
public func inlinableUnavailableUsingSPI() {
SharedInterface.foo()
}