mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
This came out of today's language review meeting. The intent is to match #available with the attribute that describes availability. This is a divergence from Objective-C. Swift SVN r28484
26 lines
717 B
Swift
26 lines
717 B
Swift
// RUN: %target-parse-verify-swift
|
|
|
|
// An @objc protocol can have 'unavailable'
|
|
// methods. They are treated as if they
|
|
// were marked optional
|
|
@objc protocol Proto {
|
|
@available(*,unavailable) optional func bad()
|
|
func good()
|
|
}
|
|
|
|
class Foo : Proto {
|
|
@objc func good() {}
|
|
}
|
|
|
|
// Reject protocols with 'unavailable' requirements
|
|
// if a protocol is not marked @objc.
|
|
protocol NonObjCProto {
|
|
@available(*,unavailable) func bad() // expected-error {{protocol members can only be marked unavailable in an @objc protocol}} expected-note {{protocol requires function 'bad()'}}
|
|
func good()
|
|
}
|
|
|
|
class Bar : NonObjCProto { // expected-error {{type 'Bar' does not conform to protocol 'NonObjCProto'}}
|
|
func good() {}
|
|
}
|
|
|