Quality of RustRover versus rust-analyzer

106 points afdbcreid

As a rust-analyzer user and contributor (with VSCode), I'm curious how RustRover compares to it. On the internet I saw both users that say RustRover is a disaster and users that claim it's infinitely better, so I don't really know what to think.

I'm especially curious about the inner workings, mostly of the trait solver. Trait solving in Rust is a very complicated process, to the point rust-analyzer uses an engine written for rustc (chalk), and yet has errors, and is likely to switch to rustc's next-gen trait solver soon. Given that RustRover (and the old Jetbrains Rust plugin) is written in Kotlin and cannot use this Rust piece of code, how did they do it? Did they write all of it themselves?

Another interesting thing is diagnostics. rust-analyzer implements an ever increasing set of diagnostics, but the most important ones - type and borrow checking, are not yet implemented/enabled by default due to a high number of false positives. I know RustRover also try to implement diagnostics by itself, so how does it compare?

I'm less interested in refactoring actions, although this is something I constantly hear RustRover beats rust-analyzer at, since rust-analyzer is constantly improving and always gaining new assists. Frankly, even though I don't really know, it may as well be that since that last time you checked rust-analyzer have more assists than RustRover (or at least, interesting assists that RustRover doesn't have).