[swift-evolution] Pitch: Remove default initialization of optional bindings
Matthew Johnson
matthew at anandabits.com
Mon Nov 6 16:41:10 CST 2017
> On Nov 6, 2017, at 4:33 PM, Slava Pestov via swift-evolution <swift-evolution at swift.org> wrote:
>
> Hi all,
>
> Right now, the following two declarations are equivalent:
>
> struct S {
> var x: Int?
> }
>
> struct S {
> var x: Int? = nil
> }
>
> That is, mutable bindings of sugared optional type (but not Optional<T>!) always have a default value of ‘nil’. This feature increases the surface area of the language for no good reason, and I would like to deprecate it in -swift-version 5 with a short proposal. Does anyone feel strongly about giving it up? I suspect most Swift users don’t even know it exists.
I don’t have too strong an opinion on this, leaning towards being supportive. That said, I think you underestimate the source breakage it will cause. I have seen a lot of code this change will break (albeit in a trivial way that’s easy to migrate).
>
> Slava
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20171106/88e9f34f/attachment.html>
More information about the swift-evolution
mailing list