Resolve clippy lints in syn and synom
diff --git a/src/attr.rs b/src/attr.rs
index fb51052..56fa087 100644
--- a/src/attr.rs
+++ b/src/attr.rs
@@ -38,7 +38,7 @@
         };
 
         if self.tts.is_empty() {
-            return Some(MetaItem::Term(name.clone()));
+            return Some(MetaItem::Term(*name));
         }
 
         if self.tts.len() == 1 {
@@ -47,7 +47,7 @@
                 if let Some(nested_meta_items) = list_of_nested_meta_items_from_tokens(&tokens) {
                     return Some(MetaItem::List(MetaItemList {
                         paren_token: tokens::Paren(Span(self.tts[0].0.span)),
-                        ident: name.clone(),
+                        ident: *name,
                         nested: nested_meta_items,
                     }));
                 }
@@ -58,7 +58,7 @@
             if let TokenNode::Op('=', Spacing::Alone) = self.tts[0].0.kind {
                 if let TokenNode::Literal(ref lit) = self.tts[1].0.kind {
                     return Some(MetaItem::NameValue(MetaNameValue {
-                        ident: name.clone(),
+                        ident: *name,
                         eq_token: Token![=]([Span(self.tts[0].0.span)]),
                         lit: Lit {
                             value: LitKind::Other(lit.clone()),
diff --git a/src/expr.rs b/src/expr.rs
index f717b2b..16f277c 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -1233,7 +1233,7 @@
             (ExprGroup {
                 expr: Box::new(e.0),
                 group_token: e.1,
-            }.into())
+            })
         ));
     }
 
@@ -1243,7 +1243,7 @@
             (ExprParen {
                 expr: Box::new(e.0),
                 paren_token: e.1,
-            }.into())
+            })
         ));
     }
 
@@ -1463,7 +1463,7 @@
                 block: catch_block,
                 do_token: do_,
                 catch_token: catch_,
-            }.into())
+            })
         ));
     }
 
@@ -1494,7 +1494,7 @@
                     map!(punct!(,), Some)
                 )) >>
                 comma2: cond!(!arm_expr_requires_comma(&expr), option!(punct!(,))) >>
-                (expr, comma1.and_then(|x| x).or(comma2.and_then(|x| x)))
+                (expr, comma1.and_then(|x| x).or_else(|| comma2.and_then(|x| x)))
             ) >>
             (Arm {
                 rocket_token: rocket,
@@ -1694,7 +1694,7 @@
             )
             |
             map!(syn!(Ident), |name| FieldValue {
-                ident: name.clone(),
+                ident: name,
                 expr: ExprKind::Path(ExprPath { qself: None, path: name.into() }).into(),
                 is_shorthand: true,
                 attrs: Vec::new(),
@@ -2046,7 +2046,7 @@
                         } else {
                             BindingMode::ByValue(mutability)
                         },
-                        ident: ident.clone(),
+                        ident: ident,
                         subpat: None,
                         at_token: None,
                     }.into();
@@ -2409,7 +2409,7 @@
                        if_false: &Option<Box<Expr>>)
     {
         if let Some(ref if_false) = *if_false {
-            TokensOrDefault(&else_token).to_tokens(tokens);
+            TokensOrDefault(else_token).to_tokens(tokens);
 
             // If we are not one of the valid expressions to exist in an else
             // clause, wrap ourselves in a block.
diff --git a/src/generics.rs b/src/generics.rs
index 0361bef..2c116fa 100644
--- a/src/generics.rs
+++ b/src/generics.rs
@@ -421,7 +421,7 @@
 
     impl<'a> ToTokens for ImplGenerics<'a> {
         fn to_tokens(&self, tokens: &mut Tokens) {
-            if empty_normal_generics(&self.0) {
+            if empty_normal_generics(self.0) {
                 return;
             }
 
@@ -457,7 +457,7 @@
 
     impl<'a> ToTokens for TypeGenerics<'a> {
         fn to_tokens(&self, tokens: &mut Tokens) {
-            if empty_normal_generics(&self.0) {
+            if empty_normal_generics(self.0) {
                 return;
             }
 
@@ -485,7 +485,7 @@
 
     impl<'a> ToTokens for Turbofish<'a> {
         fn to_tokens(&self, tokens: &mut Tokens) {
-            if !empty_normal_generics(&self.0) {
+            if !empty_normal_generics(self.0) {
                 <Token![::]>::default().to_tokens(tokens);
                 TypeGenerics(self.0).to_tokens(tokens);
             }
diff --git a/src/lib.rs b/src/lib.rs
index a9df002..820c4fd 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,6 +1,11 @@
 #![doc(html_root_url = "https://dtolnay.github.io/syn")]
 
-#![cfg_attr(feature = "cargo-clippy", allow(large_enum_variant))]
+#![cfg_attr(feature = "cargo-clippy", allow(
+    const_static_lifetime,
+    doc_markdown,
+    large_enum_variant,
+    redundant_closure,
+))]
 
 extern crate proc_macro;
 extern crate proc_macro2;
diff --git a/src/lifetime.rs b/src/lifetime.rs
index 934bcd5..0c975ff 100644
--- a/src/lifetime.rs
+++ b/src/lifetime.rs
@@ -47,7 +47,7 @@
         }
 
         if !xid_ok(&s[1..]) {
-            panic!("{:?} is not a valid lifetime name");
+            panic!("{:?} is not a valid lifetime name", s);
         }
 
         Lifetime {
diff --git a/src/mac.rs b/src/mac.rs
index 234969a..d32f0a5 100644
--- a/src/mac.rs
+++ b/src/mac.rs
@@ -47,7 +47,7 @@
                 match (d1, d2) {
                     (Delimiter::Parenthesis, Delimiter::Parenthesis) |
                     (Delimiter::Brace, Delimiter::Brace) |
-                    (Delimiter::Bracket, Delimiter::Bracket) => {}
+                    (Delimiter::Bracket, Delimiter::Bracket) |
                     (Delimiter::None, Delimiter::None) => {}
                     _ => return false,
                 }
@@ -102,7 +102,7 @@
                     Delimiter::None => 3u8.hash(h),
                 }
 
-                for item in stream.clone().into_iter() {
+                for item in stream.clone() {
                     TokenTree(item).hash(h);
                 }
                 0xffu8.hash(h); // terminator w/ a variant we don't normally hash
diff --git a/src/ty.rs b/src/ty.rs
index c4f9b53..ee77f74 100644
--- a/src/ty.rs
+++ b/src/ty.rs
@@ -1026,6 +1026,7 @@
     }
 
     impl ToTokens for GenericArgument {
+        #[cfg_attr(feature = "cargo-clippy", allow(match_same_arms))]
         fn to_tokens(&self, tokens: &mut Tokens) {
             match *self {
                 GenericArgument::Lifetime(ref lt) => lt.to_tokens(tokens),