about summary refs log tree commit diff
diff options
context:
space:
mode:
authorblyxyas <blyxyas@gmail.com>2023-03-15 16:27:46 +0100
committerblyxyas <blyxyas@gmail.com>2023-03-15 16:27:46 +0100
commite2ba75d69da533775f8db90a3348521458cf4fed (patch)
tree4b5e47f574027bdf41d66092f082a0137f48bd4c
parent3eea49446bae42709b96bd36a0eb2c0966b6b4ac (diff)
downloadrust-e2ba75d69da533775f8db90a3348521458cf4fed.tar.gz
rust-e2ba75d69da533775f8db90a3348521458cf4fed.zip
Add macro test
-rw-r--r--tests/ui/swap.fixed13
-rw-r--r--tests/ui/swap.rs13
-rw-r--r--tests/ui/swap.stderr34
3 files changed, 39 insertions, 21 deletions
diff --git a/tests/ui/swap.fixed b/tests/ui/swap.fixed
index 775b0dbde88..78d8eedc38a 100644
--- a/tests/ui/swap.fixed
+++ b/tests/ui/swap.fixed
@@ -8,7 +8,8 @@
     redundant_semicolons,
     dead_code,
     unused_assignments,
-    unused_variables
+    unused_variables,
+    clippy::let_and_return
 )]
 
 struct Foo(u32);
@@ -187,8 +188,16 @@ const fn issue_9864(mut u: u32) -> u32 {
     u + v
 }
 
-#[allow(clippy::let_and_return)]
+macro_rules! issue_10421 {
+    () => {
+        let a = 1;
+        let b = a;
+        let b = b;
+    };
+}
+
 const fn issue_10421(x: u32) -> u32 {
+    issue_10421!();
     let a = x;
     let a = a;
     let a = a;
diff --git a/tests/ui/swap.rs b/tests/ui/swap.rs
index bc9a78b49c7..c995af8ecf9 100644
--- a/tests/ui/swap.rs
+++ b/tests/ui/swap.rs
@@ -8,7 +8,8 @@
     redundant_semicolons,
     dead_code,
     unused_assignments,
-    unused_variables
+    unused_variables,
+    clippy::let_and_return
 )]
 
 struct Foo(u32);
@@ -216,8 +217,16 @@ const fn issue_9864(mut u: u32) -> u32 {
     u + v
 }
 
-#[allow(clippy::let_and_return)]
+macro_rules! issue_10421 {
+    () => {
+        let a = 1;
+        let b = a;
+        let b = b;
+    };
+}
+
 const fn issue_10421(x: u32) -> u32 {
+    issue_10421!();
     let a = x;
     let a = a;
     let a = a;
diff --git a/tests/ui/swap.stderr b/tests/ui/swap.stderr
index 825c9261e19..e9dacb3119e 100644
--- a/tests/ui/swap.stderr
+++ b/tests/ui/swap.stderr
@@ -1,5 +1,5 @@
 error: this looks like you are swapping `bar.a` and `bar.b` manually
-  --> $DIR/swap.rs:25:5
+  --> $DIR/swap.rs:26:5
    |
 LL | /     let temp = bar.a;
 LL | |     bar.a = bar.b;
@@ -10,7 +10,7 @@ LL | |     bar.b = temp;
    = note: `-D clippy::manual-swap` implied by `-D warnings`
 
 error: this looks like you are swapping elements of `foo` manually
-  --> $DIR/swap.rs:37:5
+  --> $DIR/swap.rs:38:5
    |
 LL | /     let temp = foo[0];
 LL | |     foo[0] = foo[1];
@@ -18,7 +18,7 @@ LL | |     foo[1] = temp;
    | |__________________^ help: try: `foo.swap(0, 1);`
 
 error: this looks like you are swapping elements of `foo` manually
-  --> $DIR/swap.rs:46:5
+  --> $DIR/swap.rs:47:5
    |
 LL | /     let temp = foo[0];
 LL | |     foo[0] = foo[1];
@@ -26,7 +26,7 @@ LL | |     foo[1] = temp;
    | |__________________^ help: try: `foo.swap(0, 1);`
 
 error: this looks like you are swapping elements of `foo` manually
-  --> $DIR/swap.rs:65:5
+  --> $DIR/swap.rs:66:5
    |
 LL | /     let temp = foo[0];
 LL | |     foo[0] = foo[1];
@@ -34,7 +34,7 @@ LL | |     foo[1] = temp;
    | |__________________^ help: try: `foo.swap(0, 1);`
 
 error: this looks like you are swapping `a` and `b` manually
-  --> $DIR/swap.rs:76:5
+  --> $DIR/swap.rs:77:5
    |
 LL | /     a ^= b;
 LL | |     b ^= a;
@@ -42,7 +42,7 @@ LL | |     a ^= b;
    | |___________^ help: try: `std::mem::swap(&mut a, &mut b);`
 
 error: this looks like you are swapping `bar.a` and `bar.b` manually
-  --> $DIR/swap.rs:84:5
+  --> $DIR/swap.rs:85:5
    |
 LL | /     bar.a ^= bar.b;
 LL | |     bar.b ^= bar.a;
@@ -50,7 +50,7 @@ LL | |     bar.a ^= bar.b;
    | |___________________^ help: try: `std::mem::swap(&mut bar.a, &mut bar.b);`
 
 error: this looks like you are swapping elements of `foo` manually
-  --> $DIR/swap.rs:92:5
+  --> $DIR/swap.rs:93:5
    |
 LL | /     foo[0] ^= foo[1];
 LL | |     foo[1] ^= foo[0];
@@ -58,7 +58,7 @@ LL | |     foo[0] ^= foo[1];
    | |_____________________^ help: try: `foo.swap(0, 1);`
 
 error: this looks like you are swapping `foo[0][1]` and `bar[1][0]` manually
-  --> $DIR/swap.rs:121:5
+  --> $DIR/swap.rs:122:5
    |
 LL | /     let temp = foo[0][1];
 LL | |     foo[0][1] = bar[1][0];
@@ -68,7 +68,7 @@ LL | |     bar[1][0] = temp;
    = note: or maybe you should use `std::mem::replace`?
 
 error: this looks like you are swapping `a` and `b` manually
-  --> $DIR/swap.rs:135:7
+  --> $DIR/swap.rs:136:7
    |
 LL |       ; let t = a;
    |  _______^
@@ -79,7 +79,7 @@ LL | |     b = t;
    = note: or maybe you should use `std::mem::replace`?
 
 error: this looks like you are swapping `c.0` and `a` manually
-  --> $DIR/swap.rs:144:7
+  --> $DIR/swap.rs:145:7
    |
 LL |       ; let t = c.0;
    |  _______^
@@ -90,7 +90,7 @@ LL | |     a = t;
    = note: or maybe you should use `std::mem::replace`?
 
 error: this looks like you are swapping `b` and `a` manually
-  --> $DIR/swap.rs:170:5
+  --> $DIR/swap.rs:171:5
    |
 LL | /     let t = b;
 LL | |     b = a;
@@ -100,7 +100,7 @@ LL | |     a = t;
    = note: or maybe you should use `std::mem::replace`?
 
 error: this looks like you are trying to swap `a` and `b`
-  --> $DIR/swap.rs:132:5
+  --> $DIR/swap.rs:133:5
    |
 LL | /     a = b;
 LL | |     b = a;
@@ -110,7 +110,7 @@ LL | |     b = a;
    = note: `-D clippy::almost-swapped` implied by `-D warnings`
 
 error: this looks like you are trying to swap `c.0` and `a`
-  --> $DIR/swap.rs:141:5
+  --> $DIR/swap.rs:142:5
    |
 LL | /     c.0 = a;
 LL | |     a = c.0;
@@ -119,7 +119,7 @@ LL | |     a = c.0;
    = note: or maybe you should use `std::mem::replace`?
 
 error: this looks like you are trying to swap `a` and `b`
-  --> $DIR/swap.rs:148:5
+  --> $DIR/swap.rs:149:5
    |
 LL | /     let a = b;
 LL | |     let b = a;
@@ -128,7 +128,7 @@ LL | |     let b = a;
    = note: or maybe you should use `std::mem::replace`?
 
 error: this looks like you are trying to swap `d` and `c`
-  --> $DIR/swap.rs:153:5
+  --> $DIR/swap.rs:154:5
    |
 LL | /     d = c;
 LL | |     c = d;
@@ -137,7 +137,7 @@ LL | |     c = d;
    = note: or maybe you should use `std::mem::replace`?
 
 error: this looks like you are trying to swap `a` and `b`
-  --> $DIR/swap.rs:157:5
+  --> $DIR/swap.rs:158:5
    |
 LL | /     let a = b;
 LL | |     b = a;
@@ -146,7 +146,7 @@ LL | |     b = a;
    = note: or maybe you should use `std::mem::replace`?
 
 error: this looks like you are swapping `s.0.x` and `s.0.y` manually
-  --> $DIR/swap.rs:205:5
+  --> $DIR/swap.rs:206:5
    |
 LL | /     let t = s.0.x;
 LL | |     s.0.x = s.0.y;