> On Apr 15, 2016, at 5:24 PM, Brent Royal-Gordon <[email protected]> 
> wrote:
> 
>> That’s the other part of my argument: if it is true that Swift code only 
>> needs to conform to ObjC protocols with optional requirements, but Swift 
>> code does not need to invoke optional requirements of ObjC protocols except 
>> very rarely, then it’s okay for calling-an-optional-requirement not to be 
>> part of the Swift language.
> 
> How much of a complication is the `methodName?` behavior?

It’s a semi-complicated path through the type checker, but it’s not awful to 
maintain. There’s a bit of a “fix it or remove it” issue here, because it 
doesn’t work for settable properties, even though there are very few such 
things. 

> If you're confident that `optional` is the wrong choice for protocols 
> designed in the future, perhaps you could just make it impossible to declare 
> a new optional requirement in Swift, but leave the calling behavior as-is?

Sure, we can make it arbitrarily hard to use. For example, calling it 
@objc_optional or similar would reinforce that it’s an Objective-C 
compatibility feature rather than an intended Swift feature.

        - Doug

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to