74cea9fdb9
generalize "incoherent impls" impl for user defined types To allow the move of `trait Error` into core. continues the work from #94963, finishes https://github.com/rust-lang/compiler-team/issues/487 r? `@petrochenkov` cc `@yaahc`
For high-level intro to how type checking works in rustc, see the type checking chapter of the rustc dev guide.