That sounds like a bug, and it could occur with closure expressions also, since 
at the SILGen level and below they’re basically the same thing. Please file a 
bug if you come up with a reduced test case.

Slava

> On Oct 27, 2017, at 4:00 PM, Jon Gilbert <swiftevolut...@jongilbert.com> 
> wrote:
> 
> I have run into nondescript compiler crashes (like segmentation faults, etc.) 
> when using local functions to do certain things, like wrapping the parent 
> function’s escaping closure arguments in other closures that capture 
> variables from the parent function’s local scope, especially when those 
> variables themselves are function types that do the wrapping, and therefore 
> take closures as arguments. (Of course, all of these closures taking generic 
> arguments conforming to protocols with associated types made things extra 
> interesting.)
> 
> I don’t know if this makes local functions actively harmful, or if it means 
> function types in capture lists need to support @escaping, but it does remind 
> me to go back and try to reproduce those weird issues in a sample project or 
> playground page so I can make a bug report to Apple.
> 
> Jonathan
> 
>> On Oct 27, 2017, at 12:29, Slava Pestov via swift-evolution 
>> <swift-evolution@swift.org> wrote:
>> 
>> I mean, we could remove a lot of language features without giving up turing 
>> completeness. But I’ve personally used local functions in multiple languages 
>> and found them useful. I certainly don’t see why the feature is actively 
>> harmful, which is the criteria for introducing a source breaking change in 
>> Swift 5.
> 

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to