> On Jul 13, 2017, at 10:21 PM, Félix Cloutier via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
> How should the fix-it transform the following code to make it valid?
> 
> func foo(bar: String) -> Int
> func frob() -> String?
> 
> func qaz() -> Int {
>       return foo(bar: frob()) // frob() is optional, insert a ! to fix
> }

You rewrite it to:

        return foo(bar: frob() ?? <#value if nil#>)

<# #> are the ascii representation of code placeholder tokens in Xcode.

-Chris

> 
>> Le 13 juil. 2017 à 21:36, Robert Bennett via swift-evolution 
>> <swift-evolution@swift.org> a écrit :
>> 
>> When writing Swift code, it is not uncommon to forget to unwrap optionals. 
>> The compiler will offer a fixit, telling you you must insert either a ? or a 
>> !. However, when you accept the fixit, ! is inserted (at least, it is for me 
>> in Xcode 8.3).
>> 
>> Ideally the fixit would default to ? because this is the preferred option; ! 
>> is often a sign of non-Swifty code and does not interact well with idiomatic 
>> Swift constructs such as if-let-(as?), guard-let-(as?)-else, etc. Also I 
>> think it’s safe to say that fixits should not err on the side of crashing at 
>> runtime.
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution@swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to