Ok. But in that case, I suggest to put in big fiery blinking letters “WARNING: UNLIKE ALMOST ALL OTHER LANGUAGE IN THE WORLD, RUST DOES NOT CONSIDER THAT +1 IS A NUMBER.”
This is especially important for the standard library functions, because there is no compiler to point to the exact character causing the error, just a terse error return.
You are right, I misunderstood the issue – I thought it was about the Rust parser accepting unary +. Now, I've yet to find a place where I would have needed this, but in the meantime, you can just build it yourself with:
I think you found a bug and should file an issue for the parse::<i32>() case! I tried to look for existing issues but couldn't find anything exactly. These looked somewhat related:
Here's a link to a minimal reproduction of the issue on playpen, the expected behavior being a successful compilation and run: Rust Playground
As far as the language itself, which you said is not very important, this behavior is sort of documented by the lack of + under unary operators in the reference.