>The RLS gets its source data from the compiler and from Racer. Where possible it uses data from the compiler which is precise and complete. Where its not possible, (for example for code completion and where building is too slow), it uses Racer.
Yes, but in principle slower (as it cannot update its status incrementally---referred as to "end-to-end" incremental compilation and harder than the normal incremental compilation producing executables) and accurate (as it leverages the compiler itself). AFAIK Racer has a heuristic engine that is faster and less accurate, and RLS falls back to Racer whenever it's appropriate.
https://github.com/phildawes/racer
Edit:
Just found this on the github repo[1]
>The RLS gets its source data from the compiler and from Racer. Where possible it uses data from the compiler which is precise and complete. Where its not possible, (for example for code completion and where building is too slow), it uses Racer.
[1] https://github.com/rust-lang-nursery/rls