about summary refs log tree commit diff
diff options
context:
space:
mode:
authorCaleb Cartwright <caleb.cartwright@outlook.com>2021-09-06 15:35:25 -0500
committerCaleb Cartwright <calebcartwright@users.noreply.github.com>2021-09-06 18:14:13 -0500
commita59cac29f4dcfd6e9aba03db07b33767809fcea0 (patch)
treec283804a7adc8098bdd744f7c181c1bdf27ac2bb
parent59063e8b407acf2d187ba12616f9f36d041eff8c (diff)
downloadrust-a59cac29f4dcfd6e9aba03db07b33767809fcea0.tar.gz
rust-a59cac29f4dcfd6e9aba03db07b33767809fcea0.zip
fix: use correct spans for params with attrs
-rw-r--r--src/spanned.rs2
-rw-r--r--tests/source/issue_4032.rs4
-rw-r--r--tests/target/issue_4032.rs18
3 files changed, 23 insertions, 1 deletions
diff --git a/src/spanned.rs b/src/spanned.rs
index 7e3786b7cd9..8e6c75a3744 100644
--- a/src/spanned.rs
+++ b/src/spanned.rs
@@ -104,7 +104,7 @@ impl Spanned for ast::Arm {
 impl Spanned for ast::Param {
     fn span(&self) -> Span {
         if crate::items::is_named_param(self) {
-            mk_sp(self.pat.span.lo(), self.ty.span.hi())
+            mk_sp(crate::items::span_lo_for_param(self), self.ty.span.hi())
         } else {
             self.ty.span
         }
diff --git a/tests/source/issue_4032.rs b/tests/source/issue_4032.rs
new file mode 100644
index 00000000000..11ded074c34
--- /dev/null
+++ b/tests/source/issue_4032.rs
@@ -0,0 +1,4 @@
+fn a1(#[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa] a: u8) {}
+fn b1(#[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa] bb: u8) {}
+fn a2(#[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa] a: u8) {}
+fn b2(#[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa] bb: u8) {}
diff --git a/tests/target/issue_4032.rs b/tests/target/issue_4032.rs
new file mode 100644
index 00000000000..2e7e624ca6e
--- /dev/null
+++ b/tests/target/issue_4032.rs
@@ -0,0 +1,18 @@
+fn a1(
+    #[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]
+    a: u8,
+) {
+}
+fn b1(
+    #[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]
+    bb: u8,
+) {
+}
+fn a2(
+    #[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa] a: u8,
+) {
+}
+fn b2(
+    #[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa] bb: u8,
+) {
+}