From 3e2788afdcb3e846caea261ab04d15a19909a2ed Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 15 Aug 2021 18:51:20 +0100 Subject: Add extra example to `or_return_operator` --- examples/demo/demo.odin | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'examples') diff --git a/examples/demo/demo.odin b/examples/demo/demo.odin index d896e4eb5..bf3620388 100644 --- a/examples/demo/demo.odin +++ b/examples/demo/demo.odin @@ -2055,6 +2055,9 @@ or_return_operator :: proc() { caller_2 :: proc() -> (int, Error) { return 123, .None; } + caller_3 :: proc() -> (int, int, Error) { + return 123, 345, .None; + } foo_1 :: proc() -> Error { // This can be a common idiom in many code bases @@ -2074,7 +2077,10 @@ or_return_operator :: proc() { return err1; } - _, _ = n0, n1; + // Multiple return values still work with 'or_return' as it only + // pops off the end value in the multi-valued expression + n0, n1 = caller_3() or_return; + return .None; } foo_2 :: proc() -> (n: int, err: Error) { -- cgit v1.2.3