[swift-evolution] Immediately-called closures should be considered @noescape

Brent Royal-Gordon brent at architechies.com
Tue Dec 15 17:16:55 CST 2015


Here’s a little annoyance I ran across just now:

            let sub: CKSubscription = {
                if let ID = self.ID {
                    return CKSubscription(recordType: typeName, predicate: predicate, subscriptionID: ID, options: allMutations)
                }
                else {
                    return CKSubscription(recordType: typeName, predicate: predicate, options: allMutations)
                }
            }()

This closure obviously never leaves the enclosing function, but Swift doesn’t treat it as if it had been passed to a @noescape function, so I have to say “self.ID” instead of “ID” in the condition. That’s a bit irritating, and I’d like to see it improved.

-- 
Brent Royal-Gordon
Architechies



More information about the swift-evolution mailing list