AFAIK, fix-it is driven by the Swift compiler/source kit.

> Le 13 juil. 2017 à 23:17, Saagar Jha via swift-evolution 
> <[email protected]> a écrit :
> 
> You should probably file a Radar for this, since Xcode isn’t part of the 
> Swift project.
> 
> Saagar Jha
> 
>> On Jul 13, 2017, at 19:46, iCloud via swift-evolution 
>> <[email protected] <mailto:[email protected]>> wrote:
>> 
>> Hi Swift community,
>> 
>> I was wondering if we have considered adding support for providing Xcode 
>> automatic fix-it’s for closures being returned from a function.
>> 
>> For example, here is an incorrect version of a function that requires two 
>> `@escaping` keywords to be inserted.
>> 
>> func mapping <A, B, C> (f: (A) -> (B)) -> ((C, B) -> (C)) -> ((C, A) -> (C))
>> 
>> Despite the complexity, the compiler manages to catch two errors.
>> 
>> 1. Closure use of non-escaping parameter `f` may allow it to escape
>>  a. Automatic Fix-it by doing `f: @escaping (A) - > (B)`
>> 
>> 2. Closure use of non-escaping parameter `reducer` may allow it to escape
>>  b. No Fix-it provided <———— 
>> 
>> As you see above, the two places where a compile-time error occurred had the 
>> same exact problem; they both needed a `@escaping`. However, while the 
>> function parameter was offered an automatic fix-it, the nested closure being 
>> returned was not.
>> 
>> Here’s the correct version of the function.
>> 
>> func mapping <A, B, C> (f: @escaping (A) -> (B)) -> (@escaping ((C, B) -> 
>> (C))) -> ((C, A) -> (C)) {
>>     return { reducer in
>>         return { accum, input in
>>             reducer(accum, f(input))
>>         }
>>     }
>> }
>> 
>> I know this is a small feature for a very specific use case but I think it 
>> could help make Xcode a little smarter :D 
>> Thanks for reading!
>> 
>> 
>> 
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> [email protected] <mailto:[email protected]>
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to