i also wonder about this concept; is there a programming language that has this behavior?
Ada, Nim, Pascal. I think C++ also offers it with a specific syntax.
Rust also offers it, but you need to specify it on the call side as well.