mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
37 lines
1.2 KiB
Swift
37 lines
1.2 KiB
Swift
// RUN: %target-typecheck-verify-swift -swift-version 4.2
|
|
// RUN: %target-typecheck-verify-swift -swift-version 4.2 -enable-testing
|
|
// RUN: %target-typecheck-verify-swift -swift-version 4.2 -enable-library-evolution
|
|
// RUN: %target-typecheck-verify-swift -swift-version 4.2 -enable-library-evolution -enable-testing
|
|
|
|
enum InternalEnum {
|
|
// expected-note@-1 {{type declared here}}
|
|
case apple
|
|
case orange
|
|
}
|
|
|
|
@usableFromInline enum VersionedEnum {
|
|
case apple
|
|
case orange
|
|
case pear(InternalEnum)
|
|
// expected-warning@-1 {{type of enum case in '@usableFromInline' enum should be '@usableFromInline' or public}}
|
|
case persimmon(String)
|
|
}
|
|
|
|
public struct HasInternalSetProperty {
|
|
public internal(set) var x: Int // expected-note {{setter for property 'x' is not '@usableFromInline' or public}}
|
|
|
|
@inlinable public mutating func setsX() {
|
|
x = 10 // expected-warning {{setter for property 'x' is internal and should not be referenced from an '@inlinable' function}}
|
|
}
|
|
}
|
|
|
|
@usableFromInline protocol P {
|
|
typealias T = Int
|
|
}
|
|
|
|
extension P {
|
|
@inlinable func f() {
|
|
_ = T.self // typealiases were not checked in Swift 4.2, but P.T inherits @usableFromInline in Swift 4.2 mode
|
|
}
|
|
}
|