diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib.rs | 3 | ||||
| -rw-r--r-- | src/transform.rs | 4 | 
2 files changed, 7 insertions, 0 deletions
| @@ -155,6 +155,9 @@ pub fn dynamize(_attr: TokenStream, input: TokenStream) -> TokenStream {                              n                          )                      } +                    MethodError::Transform(TransformError::QualifiedAssociatedType) => { +                        return abort!(span, "dynamize does not support qualified associated types") +                    }                      MethodError::Transform(TransformError::QualifiedSelfAssociatedType) => {                          return abort!(span, "dynamize does not support associated types of a qualified Self")                      } diff --git a/src/transform.rs b/src/transform.rs index 74ab9e6..eed48c4 100644 --- a/src/transform.rs +++ b/src/transform.rs @@ -26,6 +26,7 @@ pub enum TransformError {      UnsupportedType,      ExpectedAtLeastNTypes(usize),      AssocTypeAfterFirstNTypes(usize, Ident), +    QualifiedAssociatedType,      QualifiedSelfAssociatedType,  } @@ -119,6 +120,9 @@ impl TypeConverter<'_> {          {              if let Type::Path(self_path) = qself.ty.as_ref() {                  if self_path.path.segments[0].ident == "Self" { +                    if !self_path.path.is_ident("Self") { +                        return Err((self_path.span(), TransformError::QualifiedAssociatedType)); +                    }                      return Err((                          self_path.span(),                          TransformError::QualifiedSelfAssociatedType, | 
