// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -verify %s // REQUIRES: objc_interop import Foundation func iuo_error(prop: IUOProperty) { let _: Coat? = prop.iuo.optional() // expected-error@-1 {{value of optional type '(() -> Coat?)?' must be unwrapped}} // expected-note@-2{{coalesce}} // expected-note@-3{{force-unwrap}} let _: Coat? = prop.iuo.optional()! // expected-error@-1 {{cannot invoke 'optional' with no arguments}} let _: Coat? = prop.iuo.optional!() let _: Coat? = prop.iuo.optional!()! let _: Coat? = prop.iuo!.optional() // expected-error@-1 {{value of optional type '(() -> Coat?)?' must be unwrapped}} // expected-note@-2{{coalesce}} // expected-note@-3{{force-unwrap}} let _: Coat? = prop.iuo!.optional()! // expected-error@-1 {{cannot invoke 'optional' with no arguments}} let _: Coat? = prop.iuo!.optional!() let _: Coat? = prop.iuo!.optional!()! let _: Coat = prop.iuo.optional() // expected-error@-1 {{value of optional type '(() -> Coat)?' must be unwrapped}} // expected-note@-2{{coalesce}} // expected-note@-3{{force-unwrap}} let _: Coat = prop.iuo.optional()! // expected-error@-1 {{cannot invoke 'optional' with no arguments}} let _: Coat = prop.iuo.optional!() let _: Coat = prop.iuo.optional!()! let _: Coat = prop.iuo!.optional() // expected-error@-1 {{value of optional type '(() -> Coat)?' must be unwrapped}} // expected-note@-2{{coalesce}} // expected-note@-3{{force-unwrap}} let _: Coat = prop.iuo!.optional()! // expected-error@-1 {{cannot invoke 'optional' with no arguments}} let _: Coat = prop.iuo!.optional!() let _: Coat = prop.iuo!.optional!()! let _ = prop.iuo.name } protocol X {} extension X where Self : OptionalRequirements { func test() { let _ = self.name } }