diff options
-rw-r--r-- | src/lib.rs | 4 | ||||
-rw-r--r-- | tests/tests.rs | 10 |
2 files changed, 12 insertions, 2 deletions
@@ -338,10 +338,10 @@ fn generate_blanket_impl( eq_token: None, default: None, })); - let (_, type_gen, _where) = dyn_trait.generics.split_for_impl(); + let (_, type_gen, where_clause) = dyn_trait.generics.split_for_impl(); let dyn_trait_name = &dyn_trait.ident; quote! { - impl #blanket_generics #dyn_trait_name #type_gen for #some_ident { + impl #blanket_generics #dyn_trait_name #type_gen for #some_ident #where_clause { #(#method_impls)* } } diff --git a/tests/tests.rs b/tests/tests.rs index 652be48..3a14811 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -77,6 +77,16 @@ trait Foo<X> { } #[dynamize::dynamize] +trait FooWithWhere<X> +where + X: std::fmt::Display, +{ + type A: Into<String>; + + fn foobar(&self, x: X) -> Self::A; +} + +#[dynamize::dynamize] trait Bar<X> { fn foobar<A>(&self, x: X) -> A; } |