Avatar
https://forums.swift.org/t/why-doesnt-this-do-what-i-thought-it-would/19407 @swiftbot struct HaveResult { var resultCode = 0 func returnResultCode(_ value: Int) -> Int { return resultCode } } func testA() { var r = HaveResult() print(r.returnResultCode(changeResult(r: &r))) } func testA_variant() { var r = HaveResult() let r2 = r print(r2.returnResultCode(changeResult(r: &r))) } func testB() { var r = HaveResult() let x = changeResult(r: &r) print(r.returnResultCode(x)) } func changeResult(r: inout HaveResult) -> Int { r.resultCode = 1 return 0 } testA() testA_variant() testB()
struct OpentimeErrorThrower { var resultCode = 0 var details = "" func returnOrThrow(_ value: T) throws -> T { if resultCode == 0 { return value } throw Error("oops") } } func doesntWorkCorrectly() throws -> Int { var et = ...
🛠 1