@matklad , may I ask you to describe what was the issue you fixed in this PR?
This comment in particular: https://github.com/rust-analyzer/rust-analyzer/pull/2709/files#diff-0099aced0b5826ac85b37c58f68dcf96R14-R17
The PR was a general refactoing, only the last PR fixes the problem introduced by it
Basically, both langauge server and type hints register "onChange" handlers
And type hints call back into the server
So, if typehints handler get's registered first, it'll call into the server which hasn't received the last update yet.