rename `ImplItemKind::TyAlias` to `ImplItemKind::Type` The naming of this variant seems inconsistent given that this is not really a "type alias", and the associated type variant for `TraitItemKind` is just called `Type`.
For high-level intro to how type checking works in rustc, see the type checking chapter of the rustc dev guide.