[swift-evolution] Ownership on protocol property requirements

David Hart david at hartbit.com
Mon May 8 02:12:23 CDT 2017


> On 8 May 2017, at 09:03, Goffredo Marocchi <panajev at gmail.com> wrote:
> 
> Over my dead body --random list dweller ;)
> 
> Seriously though, I think the labels should be made to matter not removed if they do not matter now. I think this goes to a path where we should not take protocols as they should be true contracts for the API in question (default method in protocols make me think we have to write unit tests for a protocol which sounds mad... oh well) although some may argue the ownership info is implementation detail and on that point I may agree with you ;).

Agreed. But we don’t have the time to bring meaning to them in time for Swift 4. Its better to make the language consistent now (disallowing a keyword which currently has no meaning) and allow ourselves to reintroduce later with correct semantics.

> Sent from my iPhone
> 
> On 8 May 2017, at 07:57, David Hart via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
> 
>> Sounds great! It should be an easy one to get through,
>> 
>>> On 8 May 2017, at 08:35, Greg Spiers <gspiers at gmail.com <mailto:gspiers at gmail.com>> wrote:
>>> 
>>> 
>>> 
>>> On Mon, May 8, 2017 at 6:26 AM, David Hart via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>> 
>>> 
>>> On 7 May 2017, at 20:12, Xiaodi Wu via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>> 
>>>> Today these keywords have no meaning inside a protocol, so clearly it should be an error to use it in that context. I agree with Jordan that the error should be on the protocol.
>>>> 
>>>> It's entirely a different conversation whether the keyword should have meaning or not. If it should, it seems to me it should be limited to protocols that are limited to classes. But that's an additive feature we can discuss later.
>>>> 
>>>> The source-breaking bug fix that is more pressing today is removing meaningless keywords that can be misleading to users, because they have no effect but look like they should.
>>> 
>>> Exactly the trap I fell into when I found this issue.
>>>  
>>> 
>>> Yup, +1. Who wants to write a proposal?
>>> 
>>> I'd like to give it a try. I can write up the proposal to remove the keywords in protocols and will post a draft here for further discussion.
>>>  
>>> 
>>>> On Sun, May 7, 2017 at 11:00 Goffredo Marocchi via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>>> It would be useful to have a longer discussion on this as... I think that weak has a place there and should be enforced as a protocol is the public facing interface/api for the types who decide to adopt it.
>>>> 
>>>> Sent from my iPhone
>>>> 
>>>> > On 7 May 2017, at 15:41, Adrian Zubarev via swift-evolution <swift-evolution at swift.org <mailto:swift-evolution at swift.org>> wrote:
>>>> >
>>>> > browse
>>>> _______________________________________________
>>>> swift-evolution mailing list
>>>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>>>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>>> _______________________________________________
>>>> swift-evolution mailing list
>>>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>>>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>> 
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>
>>> 
>>> 
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org <mailto:swift-evolution at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-evolution <https://lists.swift.org/mailman/listinfo/swift-evolution>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170508/5b2c77b6/attachment.html>


More information about the swift-evolution mailing list