[swift-users] Compiler refuses non-escaping closure calls in nested function
Ole Begemann
ole at oleb.net
Tue Oct 11 10:38:17 CDT 2016
> So I suppose you feel this case is different from the (unsafe) implicitly unwrapping of optionals with the “!” operator.
>
> Why do you feel the situation is different?
I agree that it's a somewhat similar situation, at least if the function
declaration were made explicit with a `@nonescaping` keyword as you
suggested.
I just think features like force-unwrapping of optionals should remain
the exception, not the rule. Just because most people will agree (I
assume) that force-unwrapping is useful, doesn't automatically mean we
should extend this logic to other use cases.
On a side note, part of SE-0103 [1] was the
`withoutActuallyEscapingFunction` function, which would actually allow
you to explicitly override the compiler, though I'm not sure it would
cover the nested function situation we're discussing here. Sadly,
`withoutActuallyEscapingFunction` is implemented yet [2].
[1]:
https://github.com/apple/swift-evolution/blob/master/proposals/0103-make-noescape-default.md
[2]: https://bugs.swift.org/browse/SR-2313
More information about the swift-users
mailing list