Update to syn-2 am: 971a9d6cf1 am: b6890e6816 am: 883b76d3fa am: 48fc21558e am: 27381885a9 am: 48f46929ae

Original change: https://android-review.googlesource.com/c/platform/external/rust/crates/syn-mid/+/2522319

Change-Id: I9c70efc17d499d5a049f69ceb509634e8cf635f3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/patches/syn-2.patch b/patches/syn-2.patch
new file mode 100644
index 0000000..a25bd0c
--- /dev/null
+++ b/patches/syn-2.patch
@@ -0,0 +1,50 @@
+diff --git a/src/func.rs b/src/func.rs
+index a53e63b..384e80b 100644
+--- a/src/func.rs
++++ b/src/func.rs
+@@ -85,11 +85,12 @@ mod parsing {
+ 
+     impl Parse for Signature {
+         fn parse(input: ParseStream<'_>) -> Result<Self> {
++            #[allow(clippy::trivially_copy_pass_by_ref)]
+             fn get_variadic(input: &&FnArg) -> Option<Variadic> {
+                 if let FnArg::Typed(PatType { ty, .. }) = input {
+                     if let Type::Verbatim(tokens) = &**ty {
+                         if let Ok(dots) = parse2(tokens.clone()) {
+-                            return Some(Variadic { attrs: Vec::new(), dots });
++                            return Some(Variadic { attrs: Vec::new(), pat: None, comma: None, dots });
+                         }
+                     }
+                 }
+@@ -106,7 +107,7 @@ mod parsing {
+ 
+             let content;
+             let paren_token = parenthesized!(content in input);
+-            let inputs = content.parse_terminated(FnArg::parse)?;
++            let inputs = content.parse_terminated(FnArg::parse, Token![,])?;
+             let variadic = inputs.last().as_ref().and_then(get_variadic);
+ 
+             let output: ReturnType = input.parse()?;
+@@ -119,11 +120,11 @@ mod parsing {
+                 abi,
+                 fn_token,
+                 ident,
++                generics,
+                 paren_token,
+                 inputs,
+-                output,
+                 variadic,
+-                generics,
++                output,
+             })
+         }
+     }
+@@ -210,7 +211,7 @@ mod printing {
+             FnArg::Receiver(_) => return false,
+         };
+ 
+-        let tokens = match pat.ty.as_ref() {
++        let tokens = match &*pat.ty {
+             Type::Verbatim(tokens) => tokens,
+             _ => return false,
+         };
diff --git a/src/func.rs b/src/func.rs
index a53e63b..384e80b 100644
--- a/src/func.rs
+++ b/src/func.rs
@@ -85,11 +85,12 @@
 
     impl Parse for Signature {
         fn parse(input: ParseStream<'_>) -> Result<Self> {
+            #[allow(clippy::trivially_copy_pass_by_ref)]
             fn get_variadic(input: &&FnArg) -> Option<Variadic> {
                 if let FnArg::Typed(PatType { ty, .. }) = input {
                     if let Type::Verbatim(tokens) = &**ty {
                         if let Ok(dots) = parse2(tokens.clone()) {
-                            return Some(Variadic { attrs: Vec::new(), dots });
+                            return Some(Variadic { attrs: Vec::new(), pat: None, comma: None, dots });
                         }
                     }
                 }
@@ -106,7 +107,7 @@
 
             let content;
             let paren_token = parenthesized!(content in input);
-            let inputs = content.parse_terminated(FnArg::parse)?;
+            let inputs = content.parse_terminated(FnArg::parse, Token![,])?;
             let variadic = inputs.last().as_ref().and_then(get_variadic);
 
             let output: ReturnType = input.parse()?;
@@ -119,11 +120,11 @@
                 abi,
                 fn_token,
                 ident,
+                generics,
                 paren_token,
                 inputs,
-                output,
                 variadic,
-                generics,
+                output,
             })
         }
     }
@@ -210,7 +211,7 @@
             FnArg::Receiver(_) => return false,
         };
 
-        let tokens = match pat.ty.as_ref() {
+        let tokens = match &*pat.ty {
             Type::Verbatim(tokens) => tokens,
             _ => return false,
         };