mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
If this had a default, it should be the effective language version, not the compiler language version. That is, in the Swift 4 compiler's Swift 3 mode, we want to be acting like Swift 3, not Swift 4.
82 lines
2.6 KiB
Swift
82 lines
2.6 KiB
Swift
// RUN: %target-typecheck-verify-swift -swift-version 3 %s
|
|
|
|
@available(swift 3)
|
|
func swiftShortThree() {}
|
|
|
|
@available(swift 3.0)
|
|
func swiftShortThreePointOh() {}
|
|
|
|
@available(swift, introduced: 3.0)
|
|
func swiftThreePointOh() {}
|
|
|
|
@available(swift, introduced: 3.0, obsoleted: 4.0)
|
|
func swiftThreePointOhOnly() {}
|
|
|
|
@available(swift, deprecated: 3.0)
|
|
func swiftDeprecatedThreePointOh() {}
|
|
|
|
@available(swift, obsoleted: 3.0)
|
|
func swiftObsoletedThreePointOh() {} // expected-note {{was obsoleted in Swift 3.0}}
|
|
|
|
@available(swift, introduced: 3, obsoleted: 4.0)
|
|
class SwiftThreeOnly {}
|
|
|
|
@available(swift 4)
|
|
func swiftShortFour() {} // expected-note {{was introduced in Swift 4}}
|
|
|
|
@available(swift 4.0)
|
|
func swiftShortFourPointOh() {} // expected-note {{was introduced in Swift 4.0}}
|
|
|
|
@available(swift, introduced: 4)
|
|
func swiftFour() {} // expected-note {{was introduced in Swift 4}}
|
|
|
|
@available(swift, introduced: 4.0)
|
|
func swiftFourPointOh() {} // expected-note {{was introduced in Swift 4.0}}
|
|
|
|
@available(swift, introduced: 4.0, message: "uses abc")
|
|
func swiftFourPointOhWithMessage() {} // expected-note {{was introduced in Swift 4.0}}
|
|
|
|
@available(swift 4)
|
|
class SwiftShortFour {} // expected-note {{was introduced in Swift 4}}
|
|
|
|
@available(swift, introduced: 4, message: "uses pqr")
|
|
class SwiftFourWithMessage {} // expected-note {{was introduced in Swift 4}}
|
|
|
|
|
|
swiftShortThree()
|
|
swiftShortThreePointOh()
|
|
swiftThreePointOh()
|
|
swiftThreePointOhOnly()
|
|
swiftDeprecatedThreePointOh() // expected-warning {{is deprecated}}
|
|
swiftObsoletedThreePointOh() // expected-error {{is unavailable}}
|
|
let a : SwiftThreeOnly
|
|
|
|
|
|
swiftShortFour() // expected-error {{is unavailable}}
|
|
swiftShortFourPointOh() // expected-error {{is unavailable}}
|
|
swiftFour() // expected-error {{is unavailable}}
|
|
swiftFourPointOh() // expected-error {{is unavailable}}
|
|
swiftFourPointOhWithMessage() // expected-error {{is unavailable: uses abc}}
|
|
let aa : SwiftShortFour // expected-error {{is unavailable}}
|
|
let bb : SwiftFourWithMessage // expected-error {{is unavailable: uses pqr}}
|
|
|
|
@available(*, deprecated, message: "found the top-level decl")
|
|
func shadowedByMember3() {}
|
|
@available(*, deprecated, message: "found the top-level decl")
|
|
func shadowedByMember4() {}
|
|
|
|
struct Wrapper {
|
|
@available(swift, introduced: 3.0, obsoleted: 4.0)
|
|
@available(*, deprecated, message: "found the member decl")
|
|
func shadowedByMember3() {}
|
|
|
|
@available(swift, introduced: 4.0)
|
|
@available(*, deprecated, message: "found the member decl")
|
|
func shadowedByMember4() {}
|
|
|
|
func test() {
|
|
shadowedByMember3() // expected-warning {{found the member decl}}
|
|
shadowedByMember4() // expected-warning {{found the top-level decl}}
|
|
}
|
|
}
|