Am I the only one who thinks Rust error messages got *worse* over time in a way?
To be clear, many aspects of the error messages did get better and I'm not even claiming the overall result is net negative. I'm quite sure it's positive. However, there was one thing I loved about error messages in Rust that is not longer available as far as I know.
Previously, the error messages were strictly following the compilation stages:
- parsing
- macro execution
- import resolution
- ...
And you would only ever get errors from one stage. If you made a syntax error you would need to fix that first before seeing anything from macros. If you messed up a macro you wouldn't see any other errors. Etc. This was absolutely fantastic because that way there were no irrelevant messages. Coming from other languages which suffered from irrelevant errors, this felt like a huge win for Rust. So you could say I'm disappointed that this is no longer the case.
Currently, if you e.g. mistype a trait import you will get both the error saying that the import is wrong and a bunch of errors about non-existing methods, traits in bounds, and whatever else. And while the most relevant errors are first, this is actually super annoying in terminal which auto-scrolls to the end, so I have to keep scrolling back.
I remember in the early days I could just fix the errors in the opposite order without problem because the last error was as relevant as the first one. Or choose any other order I wanted. Currently I could still do it in theory but it'd require me wasting my thinking about whether the error is or isn't relevant. Honestly, it feels very unpleasant to me.
And no, fancy editors with Rust Analyzer don't fix this because the way they show error messages is so bad it's generally not recommended to use them for newbies and IME it's pretty bad even for someone experienced. And even if they did, their vim emulation plugins aren't nowhere near the real thing.
If at least cargo had an option to reverse the order of messages that would be significantly less annoying but frankly, not showing errors that were caused by some other error is just the best.
Am I the only one with this experience? Is there nobody else bothered by this?