<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Dec 17, 2015, at 1:46 AM, Andrey Tarantsov via swift-evolution <<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">+1, this has been a noticeable source of annoyance. Marc Knaup has said it best:<div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">Developers will likely only ever write the rather uncommon <font face="monospace, monospace" class="">[strong self]</font> capture when they know what they are doing.</div><div class=""><div dir="ltr" class=""><div class="">Misuse can happen with any feature, but it is unlikely in this case.</div></div></div></blockquote><div class=""><br class=""></div>I *am* concerned about an inconsistency here, though; is [strong self] just a magical workaround for one specific case, or could this be a part of a larger rule?</div></div></div></div></blockquote><br class=""></div><div>`self` is already special in closures. This is merely a change to its special behavior. </div><div><br class=""></div><div>I can think of two possible amendments that would make self capture more consistent with other variables.</div><div>1. Allow or require plain `[self]` instead of `[strong self]`.</div><div>2. Allow or require other captures to use `strong` as the capture specifier: `[strong y = x]`</div><br class=""><div class=""><br class=""></div><div class="">-- </div><div class="">Greg Parker <a href="mailto:gparker@apple.com" class="">gparker@apple.com</a> Runtime Wrangler</div><div class=""><br class=""></div><div class=""><br class=""></div></body></html>