11690: feat: Add an assist for inlining type aliases r=Veykril a=steven-joruk

I'm working towards implementing #10881, but I'd like to get this in first with earlier feedback.

Is `inline_type_alias` a good enough name? I guess the follow up assist would be called `inline_type_alias_into_all_users` based on that.

![valid_inlines](https://user-images.githubusercontent.com/1277939/158020510-fed78b5c-4c7e-46d1-9151-3044a29b9990.gif)

![invalid_inlines](https://user-images.githubusercontent.com/1277939/158020516-8a2deb6d-c6ec-4adf-a15b-c514fc97dc43.gif)



Co-authored-by: Steven Joruk <steven@joruk.com>
This commit is contained in:
bors[bot] 2022-03-20 21:15:49 +00:00 committed by GitHub
commit b594f9c441
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 791 additions and 1 deletions

View file

@ -764,6 +764,15 @@ impl ast::Meta {
}
}
impl ast::GenericArgList {
pub fn lifetime_args(&self) -> impl Iterator<Item = ast::LifetimeArg> {
self.generic_args().filter_map(|arg| match arg {
ast::GenericArg::LifetimeArg(it) => Some(it),
_ => None,
})
}
}
impl ast::GenericParamList {
pub fn lifetime_params(&self) -> impl Iterator<Item = ast::LifetimeParam> {
self.generic_params().filter_map(|param| match param {