I believe returning Never does what you want, e.g.
import Foundation func findReasonAndTerminate() -> Never { let reason: String = findReason() fatalError(reason) } func findReason() -> String { return "some reason" } func buildData() -> Data? { return nil } guard let data = buildData() else { findReasonAndTerminate() } On Fri, Mar 24, 2017 at 3:02 AM, Rien via swift-users <swift-users@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@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