[swift-evolution] [Pitch] Rename protocol<> to Any<>

Austin Zheng austinzheng at gmail.com
Thu May 19 02:19:03 CDT 2016


I've come to the conclusion that the best course of action is to propose this syntax-only change for Swift 3, and then advance the generalized existential proposal after Swift 3 ships. You can ask the reviewers to consider your proposal instead of this one, but given that the Swift 3 release date is in a month I don't think it's likely that anything more substantial than this will be accepted. You are welcome to try, of course.

(response inline, below)

> On May 19, 2016, at 12:11 AM, Adrian Zubarev via swift-evolution <swift-evolution at swift.org> wrote:
> 
> Austin do we really need this 3rd proposal? This makes my original one really a waste of time. I was trying to solve https://openradar.appspot.com/20990743 <https://openradar.appspot.com/20990743> with the original `Any<>` proposal when Swift 3 ships. Your other proposal would enhance it without introducing breaking changes.
> 
>> To that end, I’d suggest Any<>,Any<Any, XX>, and Any<Any<XX>> all cause warnings.
> 
> Why would these cause warnings?
> 
> func foo(any: protocol<>)
> 
> func foo(any: protocol<Any>)
> 
> func foo(any: protocol<Any, ProtocolA>)
> 
> func foo(any: protocol<ProtocolA>)
> 
> Everything is already fine today.
> 
> 

I agree, adding new warnings is out of the scope of this proposal.

> -- 
> Adrian Zubarev
> Sent with Airmail
> 
> Am 19. Mai 2016 bei 08:55:54, David Waite via swift-evolution (swift-evolution at swift.org <mailto:swift-evolution at swift.org>) schrieb:
> 
>> My feedback is that we should narrow what is acceptable for Any as much as possible, because relaxing restrictions in the future won’t break existing code.
>> 
>> To that end, I’d suggest Any<>,Any<Any, XX>, and Any<Any<XX>> all cause warnings.
>> 
>> -DW
>> 
>> > On May 19, 2016, at 12:43 AM, Austin Zheng <austinzheng at gmail.com> wrote:
>> > 
>> > Does anyone want to speak up in favor of 'Any<>'? The more I think about it the more I think 'Any' should just be the single, canonical form.
>> > 
>> > Austin
>> > 
>> > 
>> >> On May 18, 2016, at 11:33 PM, Colin Barrett <colin at springsandstruts.com> wrote:
>> >> 
>> >> There's no need for this, that's what I was trying to get across. It's (likely) a special case in the grammar right now. If we eliminate Any<>, from the point of view of syntax, both Any and Any<Foo, Bar> are just a built in type and normal application of generic arguments (to a built in type).
>> >> 
>> >> -Colin (via thumbs)
>> >> 
>> >>> On May 19, 2016, at 1:58 AM, Austin Zheng <austinzheng at gmail.com> wrote:
>> >>> 
>> >>> - 'Any<>' should be allowed. You can currently use 'protocol<>' in your code instead of 'Any'.
>> > 
>> 
>> _______________________________________________
>> 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/20160519/db1fb701/attachment.html>


More information about the swift-evolution mailing list