> On Sep 13, 2016, at 8:16 PM, Michael Ilseman via swift-users > <swift-users@swift.org> wrote: > > >> On Sep 13, 2016, at 8:14 PM, Rick Mann <rm...@latencyzero.com> wrote: >> >> But the Apple declaration (accessible via Xcode) of the method it's based on >> looks like this: >> >> open func enumerator(at url: URL, >> includingPropertiesForKeys keys: [URLResourceKey]?, >> options mask: FileManager.DirectoryEnumerationOptions = [], >> errorHandler handler: (@escaping (URL, Error) -> Bool)? = nil) >> -> FileManager.DirectoryEnumerator? >> >> handler is optional, but has @escaping. Is this an artifact of how Xcode >> presents system header files? >> > > That’s certainly funky. Might be that or a bug in the AST printer. >
Definitely a bug in the AST printer >> >>> On Sep 13, 2016, at 20:11 , Michael Ilseman <milse...@apple.com> wrote: >>> >>> TL;DR: The optional is already escaping, due to the fact that “T?" is sugar >>> for Optional<T>, and the noescape-by-default rule only applies to types in >>> immediate parameter position. Current Swift master has much better >>> diagnostics for this case. >>> >>> There is not currently a general solution involving escapability of closure >>> types used a generic parameters or tuple members, though such a thing would >>> be useful in Swift 4. >>> >>>> On Sep 13, 2016, at 7:42 PM, Shawn Erickson via swift-users >>>> <swift-users@swift.org> wrote: >>>> >>>> The following is the earlier thread I was talking about. >>>> >>>> [swift-users] Swift 3 (Xcode 8 GM) issue with @escaping >>>> >>>> -Shawn >>>> >>>> On Tue, Sep 13, 2016 at 7:31 PM Shawn Erickson <shaw...@gmail.com> wrote: >>>> I hit this issue as well. I had an early email on this list regarding do >>>> this topic, not in a situation to search for it. It is a short coming in >>>> how escaping can be applied to things like optional closures. >>>> >>>> I was in the process of authoring an email for swift evolution about it >>>> and haven't yet gotten around to filing a defect about it. >>>> >>>> -Shawn >>>> On Tue, Sep 13, 2016 at 7:27 PM Rick Mann via swift-users >>>> <swift-users@swift.org> wrote: >>>> I'm trying to write this function. The errorHandler: parameter is modeled >>>> after the NSFileManager enumerate() function. If I include the @escaping >>>> you see there, I get the error "@escaping may only be applied to >>>> parameters of function type". >>>> >>>> The second parameter, iterator:, seems to have no problems with @escaping. >>>> >>>> func >>>> iterate(directory inURL: URL?, >>>> includingPropertiesForKeys: [URLResourceKey]? = nil, >>>> options: FileManager.DirectoryEnumerationOptions = [], >>>> errorHandler inErrorHandler: (@escaping (URL, Error) -> Bool)? = nil, >>>> iterator inIterator: (@escaping (URL) throws -> ())) rethrows >>>> { >>>> } >>>> >>>> I'm not sure why I can't apply @escaping here. Can anyone enlighten me? >>>> Thank you. >>>> >>>> -- >>>> Rick Mann >>>> rm...@latencyzero.com >>>> >>>> >>>> _______________________________________________ >>>> swift-users mailing list >>>> swift-users@swift.org >>>> https://lists.swift.org/mailman/listinfo/swift-users >>>> _______________________________________________ >>>> swift-users mailing list >>>> swift-users@swift.org >>>> https://lists.swift.org/mailman/listinfo/swift-users >>> >> >> >> -- >> Rick Mann >> rm...@latencyzero.com >> >> > > _______________________________________________ > swift-users mailing list > swift-users@swift.org > https://lists.swift.org/mailman/listinfo/swift-users _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users