Preserve lifetimes on parsed references
diff --git a/syntax/parse.rs b/syntax/parse.rs
index 8cc4e2a..aed77d8 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -177,9 +177,10 @@
match arg {
FnArg::Receiver(arg) => {
if let Some(ety) = single_type {
- if let Some((ampersand, _)) = arg.reference {
+ if let Some((ampersand, lifetime)) = &arg.reference {
receiver = Some(Receiver {
- ampersand,
+ ampersand: *ampersand,
+ lifetime: lifetime.clone(),
mutability: arg.mutability,
var: Token),
ty: ety.ident.clone(),
@@ -206,6 +207,7 @@
if let Type::Ident(ident) = reference.inner {
receiver = Some(Receiver {
ampersand: reference.ampersand,
+ lifetime: reference.lifetime,
mutability: reference.mutability,
var: Token),
ty: ident,
@@ -273,6 +275,7 @@
};
Ok(which(Box::new(Ref {
ampersand: ty.and_token,
+ lifetime: ty.lifetime.clone(),
mutability: ty.mutability,
inner,
})))