diff --git a/Cargo.toml b/Cargo.toml
index 7f5e1f6..465105c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "syn"
-version = "0.15.36" # don't forget to update html_root_url and syn.json
+version = "0.15.37" # don't forget to update html_root_url and syn.json
 authors = ["David Tolnay <dtolnay@gmail.com>"]
 license = "MIT OR Apache-2.0"
 description = "Parser for Rust source code"
diff --git a/src/expr.rs b/src/expr.rs
index 05cfae0..69f449d 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -3703,7 +3703,7 @@
             self.lo.to_tokens(tokens);
             match self.limits {
                 RangeLimits::HalfOpen(ref t) => t.to_tokens(tokens),
-                RangeLimits::Closed(ref t) => Token![...](t.spans).to_tokens(tokens),
+                RangeLimits::Closed(ref t) => t.to_tokens(tokens),
             }
             self.hi.to_tokens(tokens);
         }
diff --git a/src/group.rs b/src/group.rs
index 7546532..f0ad7b4 100644
--- a/src/group.rs
+++ b/src/group.rs
@@ -71,7 +71,10 @@
     }
 }
 
-fn parse_delimited<'a>(input: &ParseBuffer<'a>, delimiter: Delimiter) -> Result<(Span, ParseBuffer<'a>)> {
+fn parse_delimited<'a>(
+    input: &ParseBuffer<'a>,
+    delimiter: Delimiter,
+) -> Result<(Span, ParseBuffer<'a>)> {
     input.step(|cursor| {
         if let Some((content, span, rest)) = cursor.group(delimiter) {
             #[cfg(procmacro2_semver_exempt)]
diff --git a/src/lib.rs b/src/lib.rs
index 6962730..b185165 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -235,7 +235,7 @@
 //!   dynamic library libproc_macro from rustc toolchain.
 
 // Syn types in rustdoc of other crates get linked to here.
-#![doc(html_root_url = "https://docs.rs/syn/0.15.36")]
+#![doc(html_root_url = "https://docs.rs/syn/0.15.37")]
 #![allow(unknown_lints, bare_trait_objects, ellipsis_inclusive_range_patterns)]
 #![cfg_attr(feature = "cargo-clippy", allow(renamed_and_removed_lints))]
 #![cfg_attr(feature = "cargo-clippy", deny(clippy, clippy_pedantic))]
@@ -245,7 +245,6 @@
     allow(
         block_in_if_condition_stmt,
         cognitive_complexity,
-        const_static_lifetime,
         deprecated_cfg_attr,
         doc_markdown,
         eval_order_dependence,
@@ -253,6 +252,7 @@
         needless_pass_by_value,
         never_loop,
         redundant_field_names,
+        redundant_static_lifetimes,
         too_many_arguments,
     )
 )]
diff --git a/syn.json b/syn.json
index 8c5cac8..2031a4a 100644
--- a/syn.json
+++ b/syn.json
@@ -1,5 +1,5 @@
 {
-  "version": "0.15.36",
+  "version": "0.15.37",
   "types": [
     {
       "ident": "Abi",
diff --git a/tests/common/eq.rs b/tests/common/eq.rs
index b460b9c..d0b64f4 100644
--- a/tests/common/eq.rs
+++ b/tests/common/eq.rs
@@ -311,7 +311,7 @@
 spanless_eq_struct!(UseTree; prefix kind span);
 spanless_eq_struct!(Variant_; ident attrs id data disr_expr);
 spanless_eq_struct!(WhereBoundPredicate; span bound_generic_params bounded_ty bounds);
-spanless_eq_struct!(WhereClause; id predicates span);
+spanless_eq_struct!(WhereClause; predicates span);
 spanless_eq_struct!(WhereEqPredicate; id span lhs_ty rhs_ty);
 spanless_eq_struct!(WhereRegionPredicate; span lifetime bounds);
 spanless_eq_enum!(AsmDialect; Att Intel);
