Return
In Dyon, return can be used as a variable:
#![allow(unused)] fn main() { fn foo(mut a: f64) -> { return = a + 2 a += 2 } }
If you leave out =, the function will exit with the value:
#![allow(unused)] fn main() { fn foo(a: f64) -> { return a + 2 println("hi") // never gets called. } }
Functions without -> can use return without a value:
#![allow(unused)] fn main() { fn foo() { return } }
All functions that returns a value must use return.
You get an error if you forget it:
#![allow(unused)] fn main() { fn foo(a: f64) -> { a + 2 } // ERROR }
--- ERROR ---
In `source/test.dyon`:
Type mismatch (#775):
Expected `any`, found `void`
1,1: fn foo(a: f64) -> { a + 2 }
1,1: ^