d2df372bca
Properly track `ImplObligations` Instead of probing for all possible `impl`s that could have caused an `ImplObligation`, keep track of its `DefId` and obligation spans for accurate error reporting. Follow to #89580. Addresses #89418.
For high-level intro to how type checking works in rustc, see the type checking chapter of the rustc dev guide.