If we drop the idea of extending Any and AnyObject (which is out of scope), does the fact that what is left is syntactic sugar make it unsuitable for Swift 4? I remember Chris saying syntactic sugar is not the goal for Swift 4, but this syntactic sugar looks really sweet (pun intended).
> On 22 Feb 2017, at 08:36, Douglas Gregor <[email protected]> wrote: > > > > Sent from my iPhone > >> On Feb 21, 2017, at 11:25 PM, David Hart via swift-evolution >> <[email protected]> wrote: >> >> Yes, but it's not very discoverable. Plus, if the subclass existentials >> proposal is accepted, it would actually allow us to do: >> >> class C {} >> extension C & P1 {} > > ... which is > > extension P1 where Self: C1 {} > > > Actually extending semantics (e.g. to extend Any or AnyObject) is a very > large project that's out of scope. Without that, this is a small bit of > syntactic sugar. > > - Doug > >> >>> On 22 Feb 2017, at 08:06, Jacob Bandes-Storch <[email protected]> wrote: >>> >>> This works today: >>> >>> protocol P1{} >>> protocol P2{} >>> >>> extension P1 where Self: P2 { >>> func foo() {} >>> } >>> >>> func bar(x: P1 & P2) { >>> x.foo() >>> } >>> >>> >>>> On Tue, Feb 21, 2017 at 10:53 PM, David Hart via swift-evolution >>>> <[email protected]> wrote: >>>> Hello list, >>>> >>>> Found out yesterday that you can’t extend all existentials in Swift: >>>> >>>> protocol P1 {} >>>> extension P1 {} >>>> // works as expected >>>> >>>> protocol P2 {} >>>> extension P1 & P2 {} >>>> // error: non-nominal type 'P1 & P2' cannot be extended >>>> >>>> extension Any {} >>>> // error: non-nominal type 'Any' cannot be extended >>>> >>>> extension AnyObject {} >>>> // error: 'AnyObject' protocol cannot be extended >>>> >>>> I’d like to write a proposal to lift some of those restrictions. But the >>>> question is: which should be lifted? P1 & P2 seems like an obvious case. >>>> But what about Any and AnyObject? Is there a design reason that we >>>> shouldn’t allow it? >>>> >>>> David. >>>> >>>> _______________________________________________ >>>> swift-evolution mailing list >>>> [email protected] >>>> https://lists.swift.org/mailman/listinfo/swift-evolution >>>> >>> >> _______________________________________________ >> swift-evolution mailing list >> [email protected] >> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
