Separate lifetime ident from lifetime resolution in HIR Drive-by: change how suggested generic args are computed. Fixes https://github.com/rust-lang/rust/issues/103815 I recommend reviewing commit-by-commit.
For high-level intro to how type checking works in rustc, see the type checking chapter of the rustc dev guide.