diff options
author | HampusM <hampus@hampusmat.com> | 2023-03-19 13:30:53 +0100 |
---|---|---|
committer | HampusM <hampus@hampusmat.com> | 2023-03-19 13:30:53 +0100 |
commit | d03c747cfef277fda5823e08784c94c30c7f3964 (patch) | |
tree | 99620a5d44ed4c1874f69578cddfdc1420c11d6e /macros/src/syn_ext.rs | |
parent | 21911153355b4bf9612c38f5ac92562aec02ffd9 (diff) |
fix: allow trait generic param bounds
Diffstat (limited to 'macros/src/syn_ext.rs')
-rw-r--r-- | macros/src/syn_ext.rs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/macros/src/syn_ext.rs b/macros/src/syn_ext.rs index 7a3e9ae..9b5b037 100644 --- a/macros/src/syn_ext.rs +++ b/macros/src/syn_ext.rs @@ -27,15 +27,28 @@ use syn::{ pub trait GenericsExt: Sized { - fn without_where_clause(self) -> Self; + fn strip_where_clause_and_bounds(self) -> Self; } impl GenericsExt for Generics { - fn without_where_clause(mut self) -> Self + fn strip_where_clause_and_bounds(mut self) -> Self { self.where_clause = None; + self.params = self + .params + .into_iter() + .map(|generic_param| match generic_param { + GenericParam::Type(mut type_param) => { + type_param.bounds.clear(); + + GenericParam::Type(type_param) + } + generic_param => generic_param, + }) + .collect(); + self } } |