<div dir="ltr">On 23 June 2017 at 02:39, Mike Kluev <span dir="ltr">&lt;<a href="mailto:mike.kluev@gmail.com" target="_blank">mike.kluev@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><div>if a single private var has no implicit / explicit default value then default member wise initialiser is not created (#change) and attempt to opt-in to have one gives an error. let&#39;s call it proposal #5. this particular one is not a backward compatible change, the old code will have to be modified. </div></div></div></div></blockquote></div><br></div><div class="gmail_extra">alternatively: </div><div class="gmail_extra"><br></div><div class="gmail_extra">in case of private members with no implicit / explicit default values, we may have a private memberwise initialiser with all private member parameters as well. you can create your own public initializer and call through the private memberwise initializer if needed</div><div class="gmail_extra"><br></div><div class="gmail_extra">struct S {</div><div class="gmail_extra">  var a: Int</div><div class="gmail_extra">  var b: Int = 0</div><div class="gmail_extra"><br></div><div class="gmail_extra">  private var c: Int</div><div class="gmail_extra">  private var d: Int?</div><div class="gmail_extra"><br></div><div class="gmail_extra">// autogenerated (#change)</div><div class="gmail_extra">//</div><div class="gmail_extra">//  private init(a: Int, b: Int = 0, c: Int, d: Int? = nil) {   // private</div><div class="gmail_extra">//    self.a = a</div><div class="gmail_extra">//    self.b = b</div><div class="gmail_extra">//    self.c = c</div><div class="gmail_extra">//    self.d = d</div><div class="gmail_extra">//  }</div><div class="gmail_extra"><br></div><div class="gmail_extra">  init(... whatever ...) {</div><div class="gmail_extra">    self.init(a: ...., b: ....., c: ...., d: ....)<br></div><div class="gmail_extra">  }</div><div class="gmail_extra">}</div><div class="gmail_extra"><br></div><div class="gmail_extra">Mike</div><div class="gmail_extra"><br></div></div>