Is there any outlook or discussion about including auto referencing the language? I found several discussion on the net on the topic, but I did not find any reason as to why not to do it, except that potentially it might be “misleading” for the user, and potential clashes of traits with both signatures. However, I think there might be work around both of those issues, however for some cases, especially operators, this leads to some significantly bad looking code with readability 0. This is true when operators return by value, but you want to take by reference, for instance:
// 5a^2b^2c^2 + floor(ab^2, 2) + min(a^2, b^2) + 3
let poly = &(&(&(&(&a * &a) * &(&b * &b)) * &(&c * &c)) * 5) + &(&floor(&(&(&a * &b) * &b), &2.into()) + &(&min(&(&a * &a), &(&b * &b)) + 3));
In this case all operators are defined for a reference, but return a value. An alternative would be to wrap a reference/Rc/Arc with a struct and pass that by value, however this just brings me back to
c++ idioms and also beats the point of having a reference at all.
I’m wondering for other drawbacks of this and well, I’m not an expert on Rust so maybe I’m significantly overlooking things obvious.