Pitch: Remove default initialization of optional bindings

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.

value types only or classes as well?

i use the first form (and rely on it every here and there) and to me having
to set to nil explicitly will amount to more visual noise in the source.

btw, what is "the surface area of the language"?



on Mon, 06 Nov 2017 14:33:44 -0800 Slava Pestov <spestov@apple.com> wrote: