Files
swift-mirror/test/attr/attr_availability_swift_runtime.swift
Allan Shortlidge 1a86cd9c26 AST: Introduce a Swift runtime availability domain.
Add support for the `Swift` availability domain, which represents availability
with respect to the Swift runtime. Use of this domain is restricted by the
experimental feature `SwiftRuntimeAvailability`.
2025-10-08 17:31:57 -07:00

49 lines
1.7 KiB
Swift

// RUN: %target-typecheck-verify-swift -swift-version 5 -parse-as-library -enable-experimental-feature SwiftRuntimeAvailability
// REQUIRES: swift_feature_SwiftRuntimeAvailability
@available(Swift 6, *)
func availableInSwiftRuntime6Short() { }
@available(Swift 6.0, *)
func availableInSwiftRuntime6_0Short() { }
@available(Swift 6, macOS 15, iOS 18, watchOS 11, tvOS 18, visionOS 2, *)
func availableInSwiftRuntime6ShortWithPlatforms() { }
@available(Swift, introduced: 6)
func availableInSwiftRuntime6() { }
@available(Swift, introduced: 6.0)
func availableInSwiftRuntime6_0() { }
@available(Swift, introduced: 5.1, obsoleted: 6)
func availableInSwiftRuntime5_1Thru6() { }
@available(Swift, deprecated: 5.9)
func deprecatedInSwiftRuntime5_9() { }
@available(Swift 4, *) // expected-warning {{'4' is not a valid version number for Swift}}
func availableInSwiftRuntime4() { }
@available(Swift 4.9, *) // expected-warning {{'4.9' is not a valid version number for Swift}}
func availableInSwiftRuntime4_9() { }
// Swift 5.0 is the earliest possible runtime version
@available(Swift 5, *)
func availableInSwiftRuntime5() { }
@available(Swift, unavailable) // expected-warning {{'unavailable' cannot be used in '@available' attribute for Swift}}
func unavailableInSwiftRuntime() { }
// MARK: Swift language mode
@available(swift 6) // expected-warning {{'swift' has been renamed to 'SwiftLanguageMode'}}{{12-17=SwiftLanguageMode}}
func swift6OldSpellingShort() { }
@available(swift, introduced: 6) // expected-warning {{'swift' has been renamed to 'SwiftLanguageMode'}}{{12-17=SwiftLanguageMode}}
func swift6OldSpelling() { }
@available(SwiftLanguageMode 6)
func swiftLanguageModeShort6() { }