77030b7825
Handle mismatched generic param kinds in trait impls betterly - Check that generic params on a generic associated type are the same as in the trait definition - Check that const generics are not used in place of type generics (and the other way round too) r? `@lcnr`
For high-level intro to how type checking works in rustc, see the type checking chapter of the rustc dev guide.