diff --git a/src/item.rs b/src/item.rs index 80e8f1b18a..ce6b15634b 100644 --- a/src/item.rs +++ b/src/item.rs @@ -1058,7 +1058,6 @@ pub mod parsing { // type Ty where T: 'static = T; BeforeEq, // type Ty = T where T: 'static; - #[allow(dead_code)] AfterEq, // TODO: goes away once the migration period on rust-lang/rust#89122 is over Both, @@ -1091,7 +1090,7 @@ pub mod parsing { WhereClauseLocation::BeforeEq | WhereClauseLocation::Both => { generics.where_clause = input.parse()?; } - _ => {} + WhereClauseLocation::AfterEq => {} } let ty = if let Some(eq_token) = input.parse()? { @@ -1788,7 +1787,7 @@ pub mod parsing { bounds: _, ty, semi_token, - } = FlexibleItemType::parse(input, WhereClauseLocation::BeforeEq)?; + } = FlexibleItemType::parse(input, WhereClauseLocation::Both)?; if defaultness.is_some() || generics.lt_token.is_some() @@ -2277,7 +2276,7 @@ pub mod parsing { bounds, ty, semi_token, - } = FlexibleItemType::parse(input, WhereClauseLocation::Both)?; + } = FlexibleItemType::parse(input, WhereClauseLocation::AfterEq)?; if defaultness.is_some() || vis.is_some() { Ok(TraitItem::Verbatim(verbatim::between(begin, input))) @@ -2608,7 +2607,7 @@ pub mod parsing { bounds: _, ty, semi_token, - } = FlexibleItemType::parse(input, WhereClauseLocation::Both)?; + } = FlexibleItemType::parse(input, WhereClauseLocation::AfterEq)?; if colon_token.is_some() || ty.is_none() { Ok(ImplItem::Verbatim(verbatim::between(begin, input))) diff --git a/tests/repo/mod.rs b/tests/repo/mod.rs index b06fab76de..afad9fa96a 100644 --- a/tests/repo/mod.rs +++ b/tests/repo/mod.rs @@ -39,6 +39,14 @@ static EXCLUDE_FILES: &[&str] = &[ "tests/ui/issues/issue-34074.rs", "tests/ui/proc-macro/trait-fn-args-2015.rs", + // Deprecated where-clause location + "src/tools/rustfmt/tests/source/issue_4257.rs", + "src/tools/rustfmt/tests/source/issue_4911.rs", + "src/tools/rustfmt/tests/target/issue_4257.rs", + "src/tools/rustfmt/tests/target/issue_4911.rs", + "tests/pretty/gat-bounds.rs", + "tests/rustdoc/generic-associated-types/gats.rs", + // Old type ascription expression syntax "src/tools/rustfmt/tests/source/type-ascription.rs", "src/tools/rustfmt/tests/target/type-ascription.rs",