From 8179dfab311b5e9555e34e6f42e58b1d3a3a4e08 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Wed, 24 Nov 2021 17:57:31 +0100 Subject: better error for associated types in supertraits --- src/lib.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index 3656bf7..277720e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -104,6 +104,19 @@ pub fn dynamize(_attr: TokenStream, input: TokenStream) -> TokenStream { let mut blanket_impl_attrs = Vec::new(); let mut dyn_trait_attrs = Vec::new(); + // just to provide a better error message + for bound in trait_bounds(&original_trait.supertraits) { + if let Some(assoc_type) = iter_path(&bound.path) + .filter_map(filter_map_assoc_paths) + .next() + { + return abort!( + assoc_type.span(), + "dynamize does not support associated types in supertraits" + ); + } + } + // FUTURE: use Vec::drain_filter once it's stable let mut i = 0; while i < original_trait.attrs.len() { -- cgit v1.2.3