diff --git a/pin-project-internal/src/pin_project/derive.rs b/pin-project-internal/src/pin_project/derive.rs index c8afa6ba..090090a0 100644 --- a/pin-project-internal/src/pin_project/derive.rs +++ b/pin-project-internal/src/pin_project/derive.rs @@ -540,10 +540,10 @@ impl Context { .generics .lifetimes() .enumerate() - .map(|(i, l)| { + .map(|(i, LifetimeDef { lifetime, .. })| { let field_ident = format_ident!("__lifetime{}", i); quote! { - #field_ident: &#l () + #field_ident: &#lifetime () } }) .collect(); diff --git a/tests/pin_project.rs b/tests/pin_project.rs index 417cc250..2c074f9e 100644 --- a/tests/pin_project.rs +++ b/tests/pin_project.rs @@ -272,12 +272,11 @@ fn trait_bounds_on_type_generics() { impl Static for Struct7 {} - // TODO: support this - // #[pin_project] - // pub struct Struct8<'a, 'b: 'a> { - // field1: &'a u8, - // field2: &'b u8, - // } + #[pin_project] + pub struct Struct8<'a, 'b: 'a> { + field1: &'a u8, + field2: &'b u8, + } #[pin_project] pub struct TupleStruct<'a, T: ?Sized>(&'a mut T);