<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I don’t believe this thread is well-served by having anyone be told why nested functions should not be nested functions. <div class=""><br class=""></div><div class="">Now, the power of nesting won’t be fully realized until nested protocol extensions work. The majority of my nested functions are generic (much thanks to those behind 7.3’s compiler improvements for allowing me to bring a lot of those back into functions, when I had had to move them outwards.), and would be better served as extensions on a nested protocol. But, I still use nested structs, classes, functions, and computed properties a lot; they can be very good for limiting scope to exactly what is needed, and for eliminating duplicate code. <div class=""><div class=""><br class=""></div><div class="">So while I love the reasoning behind this proposal – the feature must be implemented, to avoid the ugliness that we deal with currently– I don’t like it as-is. I think the Swiftest way to do this is to use extensions for functions/properties/initializers.</div><div class=""><br class=""></div><div class="">I wager that initializers would benefit most:</div></div><div class=""><a href="http://merowing.info/2015/11/swift-init/" class="">http://merowing.info/2015/11/swift-init/</a></div><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2" class="">extension</span> <span style="font-variant-ligatures: no-common-ligatures; color: #bb2ca2" class="">init</span>(coreDataStack stack: <span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">CoreDataStack</span>) {…</div></div></div></body></html>