On Saturday, 4 May 2013 at 23:30:01 UTC, Walter Bright wrote:
On 5/4/2013 3:50 PM, deadalnix wrote:
Require isn't the right word, or you hav to explain yourself
much more.
You need an explicit annotation if a ref parameter is returned
by ref by that function. This is what Rust's annotations do.
Consider:
ref T foob(ref U u) { return u.t; }
ref U bar() { U u; return foob(u); }
The compiler cannot know that the ref return of foob is
referring to local u (as opposed to, say, a ref to a global)
unless it is annotated to say so. Rust is no different.
This code sample won't require any annotation in Rust. And it
illustrate wonderfully what I'm saying : most people in the
discussion (and it has been shown now that this includes you)
were unaware of how does Rust solve the problem.
I don't think excluding a solution that isn't understood is the
smartest thing to do.