Add GenericParamList::to_generic_args

This commit is contained in:
DropDemBits 2022-10-09 17:58:55 -04:00
parent 8437e4ba58
commit 75f641799e
2 changed files with 19 additions and 32 deletions

View file

@ -235,6 +235,23 @@ impl ast::GenericParamList {
}
}
}
/// Extracts the const, type, and lifetime names into a new [`ast::GenericParamList`]
pub fn to_generic_args(&self) -> ast::GenericParamList {
let params = self.generic_params().filter_map(|param| match param {
ast::GenericParam::ConstParam(it) => {
Some(ast::GenericParam::TypeParam(make::type_param(it.name()?, None)))
}
ast::GenericParam::LifetimeParam(it) => {
Some(ast::GenericParam::LifetimeParam(make::lifetime_param(it.lifetime()?)))
}
ast::GenericParam::TypeParam(it) => {
Some(ast::GenericParam::TypeParam(make::type_param(it.name()?, None)))
}
});
make::generic_param_list(params)
}
}
impl ast::WhereClause {