func _throwsShim<T>(_ value: T) throws -> T { value } func test() throws -> Int { return try _throwsShim(1) }
とかで良さそう、そしたら _capture は @autoclosure
も rethrows
もいらず, (edited) func _capture<T>(_ value: T, column: Int) -> T { values.append(Value(value: _toString(value), column: column)) return value } return try _throwsShim(_capture(_capture(foo, column: 0).bar(_capture(baz, column: 8)), column: 4))
とか。