diff --git a/src/context.rs b/src/context.rs index 6cfa9e5..eb666fa 100644 --- a/src/context.rs +++ b/src/context.rs @@ -29,7 +29,9 @@ use crate::TypleMacro; #[derive(Clone)] pub enum Typle { + // `Typle`: the name C of the type for all components (concrete or generic) Specific(Type), + // `Typle`: the invented name for each component Generic(Rc>), } diff --git a/src/context/shared.rs b/src/context/shared.rs index e03ebae..10185ee 100644 --- a/src/context/shared.rs +++ b/src/context/shared.rs @@ -214,11 +214,11 @@ impl TypleContext { // T<{4}> -> T4 match self.get_type(typle, value, first.span())? { Type::Path(syn::TypePath { - qself: first_qself, - path: first_path, + qself: None, + path: component_path, }) => { - *qself = first_qself; - path.segments = first_path + path.leading_colon = component_path.leading_colon; + path.segments = component_path .segments .into_iter() .chain(segments)