All optional closures must be escaping, since the closure is stored inside the
One could argue that it might sometimes be beneficial to be able to mark such closures as non-escaping. However, that would require some kind of language support to mark
Optional as escaping/nonescaping too, or somehow add some sort of compiler magic to infer wether or not the optional that is contaning the nonescaping closure will actually outlive the caller.
This seems very non-trivial to me, but what do I know?
However, short answer is: The closure must be escaping, so no need to explicitly mark it. The same goes for instance members, etc.