532671b8ee
* Confirm the path segment being modified is an `enum` * Check whether type has type param before suggesting changing `Self` * Wording changes * Add clarifying comments * Suggest removing args from `Self` if the type doesn't have type params
For high-level intro to how type checking works in rustc, see the type checking chapter of the rustc dev guide.