Sent from my iPad

> On Dec 31, 2015, at 11:53 AM, Dave Abrahams <dabrah...@apple.com> wrote:
> 
> 
>> On Dec 31, 2015, at 9:47 AM, Matthew Johnson <matt...@anandabits.com> wrote:
>> 
>>>>>> In the second example here Forwarder does conform to P.  The author of 
>>>>>> Forwarder has the flexibility to specify whether conformance is desired 
>>>>>> or not.
>>>>> 
>>>>> There are ways to handle that, including factoring the APIs of interest 
>>>>> out of P and into a private protocol Q, then declaring the Forwardee’s 
>>>>> conformance to Q.  Now, there’s an expressivity problem with our current 
>>>>> access control system that you can’t use an internal or private protocol 
>>>>> to provide public API, but that should be fixed separately.
>>>> 
>>>> I'm not sure where Q comes into play in this specific example.  The idea 
>>>> here is that forwarding implementations of all members of P are 
>>>> synthesized by the forward declaration.  It is left up to Forwarder to 
>>>> decide whether or not to declare actual conformance to P.  I am also 
>>>> confused by "then declaring the Forwardee’s conformance to Q" because we 
>>>> are discussing Forwarder's conformance here, not Forwardee’s.
>>> 
>>> Presumably both ends of the forwarding arrangement would have to conform to 
>>> the same protocol, no?
>> 
>> No.  This is addressed in the proposal and the lazy collections motivating 
>> example I replied with last night.  I don’t think it’s a good idea to 
>> require this.
> 
> 
> My only point was that if we’re going to require the forwarder to conform, we 
> may as well require it of the forwardee.  I realize that you don’t want to 
> require either conformance.

There are independent reasons not to require it of the forwarded and the 
forwarder, so I disagree with "may as well".

It may be possible that eventually enough of the language limitations would be 
lifted that requiring conformance of both wouldn't restrict the power of a 
forwarding feature and as such that requirement wouldn't have any downsides 
other than the need to declare an additional conformance here or there.  

I would prefer to no artificially restrict the power of the feature without 
compelling reasons to do so.  

> 
> -Dave
> 
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to