blob: 7d8b474fc3ceb88b012ea25dcb39e7e93b2dfd70 [file] [log] [blame]
// RUN: %target-typecheck-verify-swift
// REQUIRES: OS=macosx
// Make sure that a compatible unavailable wrapping doesn't allow referencing declarations that are completely unavailable.
@available(iOS, unavailable)
class Outer {
@available(*, unavailable)
func completelyBadMethod() {} // expected-note {{'completelyBadMethod()' has been explicitly marked unavailable here}}
}
@available(iOS, unavailable)
func test(outer: Outer) {
outer.completelyBadMethod() // expected-error {{'completelyBadMethod()' is unavailable}}
}
@available(*, unavailable)
class Outer2 { // expected-note {{'Outer2' has been explicitly marked unavailable here}}
@available(iOS, unavailable)
func innerUnavailable() {}
}
@available(iOS, unavailable)
func test2(outer: Outer2) { // expected-error {{'Outer2' is unavailable}}
outer.innerUnavailable()
}