[swift-users] @noReturn

Zhao Xin owenzx at gmail.com
Fri Mar 24 04:14:27 CDT 2017


The last line should be  `fatalError(findReasonAndTerminate())`.

Zhaoxin

On Fri, Mar 24, 2017 at 5:13 PM, Zhao Xin <owenzx at gmail.com> wrote:

> Change you `func findReasonAndTerminate()` to `func
> findReasonAndTerminate() -> String`.
> Then you can use `fatalError(func findReasonAndTerminate())`.
>
> Zhaoxin
>
> On Fri, Mar 24, 2017 at 5:02 PM, Rien via swift-users <
> swift-users at swift.org> wrote:
>
>> Is there any way to mark a function as “no return”?
>>
>> Reason: The compiler generates an error when the else block from a guard
>> does not terminate the execution by either a return or a fatalError. I want
>> to call out to a function and raise the fatalError in that function.
>>
>> func findReasonAndTerminate() {
>>    let reason: String = ….
>>    fatalError(reason)
>> }
>>
>> main.swift:
>>
>> guard let data = buildData() else { findReasonAndTerminate() }
>>
>>
>> Currently the work around is to add another fatalError like this:
>>
>> guard let data = buildData() else { findReasonAndTerminate(); fatalError }
>>
>>
>> but it would be nice to have some attribute like @noReturn:
>>
>> @noReturn
>> func findReasonAndTerminate() { … }
>>
>>
>> Regards,
>> Rien
>>
>> Site: http://balancingrock.nl
>> Blog: http://swiftrien.blogspot.com
>> Github: http://github.com/Balancingrock
>> Project: http://swiftfire.nl
>>
>>
>>
>>
>>
>> _______________________________________________
>> swift-users mailing list
>> swift-users at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-users
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170324/fe7d39ae/attachment.html>


More information about the swift-users mailing list