From 5b58b1eae4c7c29a42fa2b506be2af9c26d9d200 Mon Sep 17 00:00:00 2001 From: topecongiro Date: Sat, 21 Dec 2019 23:57:27 +0900 Subject: [PATCH 1/2] Use correct span --- src/matches.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/matches.rs b/src/matches.rs index 83ece213ba8..60d93ac8c3e 100644 --- a/src/matches.rs +++ b/src/matches.rs @@ -45,6 +45,7 @@ impl<'a> ArmWrapper<'a> { impl<'a> Spanned for ArmWrapper<'a> { fn span(&self) -> Span { if let Some(lo) = self.beginning_vert { + let lo = std::cmp::min(lo, self.arm.span().lo()); mk_sp(lo, self.arm.span().hi()) } else { self.arm.span() From 16fdb3954d3f0d0dc806b1b2932e2dafedb5e8bf Mon Sep 17 00:00:00 2001 From: topecongiro Date: Sat, 21 Dec 2019 23:58:29 +0900 Subject: [PATCH 2/2] Add a test for #3974 --- tests/target/issue-3974.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 tests/target/issue-3974.rs diff --git a/tests/target/issue-3974.rs b/tests/target/issue-3974.rs new file mode 100644 index 00000000000..a9f992ebd5c --- /dev/null +++ b/tests/target/issue-3974.rs @@ -0,0 +1,10 @@ +fn emulate_foreign_item() { + match link_name { + // A comment here will duplicate the attribute + #[rustfmt::skip] + | "pthread_mutexattr_init" + | "pthread_mutexattr_settype" + | "pthread_mutex_init" + => {} + } +}