about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2019-04-17 01:50:58 +0000
committerbors <bors@rust-lang.org>2019-04-17 01:50:58 +0000
commit1936368da1321efdd29ff939797fdf6741ebb5f6 (patch)
treeafc01a084454d7050f0b948e84208d176eb01759
parent1132caabff794484c02f0d967b8f9a698e4597ba (diff)
parentd1e84c615c31be8fa6ca40fddaabc5ed30910efa (diff)
downloadrust-1936368da1321efdd29ff939797fdf6741ebb5f6.tar.gz
rust-1936368da1321efdd29ff939797fdf6741ebb5f6.zip
Auto merge of #3976 - phansch:deref_addrof_rustfix, r=flip1995
Add run-rustfix for deref_addrof lint

* renames `tests/ui/reference.{rs,stderr}` to
  `tests/ui/deref_addrof.{rs,stderr}
* Moves small part of the testfile to a separate file as the lint
  triggered again on the fixed code (as intended)
* Adds `// run-rustfix` to `tests/ui/deref_addrof.rs`

cc #3630
-rw-r--r--tests/ui/deref_addrof.fixed39
-rw-r--r--tests/ui/deref_addrof.rs (renamed from tests/ui/reference.rs)20
-rw-r--r--tests/ui/deref_addrof.stderr (renamed from tests/ui/reference.stderr)36
-rw-r--r--tests/ui/deref_addrof_double_trigger.rs21
-rw-r--r--tests/ui/deref_addrof_double_trigger.stderr22
5 files changed, 94 insertions, 44 deletions
diff --git a/tests/ui/deref_addrof.fixed b/tests/ui/deref_addrof.fixed
new file mode 100644
index 00000000000..9e5b51d6d5e
--- /dev/null
+++ b/tests/ui/deref_addrof.fixed
@@ -0,0 +1,39 @@
+// run-rustfix
+
+fn get_number() -> usize {
+    10
+}
+
+fn get_reference(n: &usize) -> &usize {
+    n
+}
+
+#[allow(clippy::many_single_char_names, clippy::double_parens)]
+#[allow(unused_variables, unused_parens)]
+#[warn(clippy::deref_addrof)]
+fn main() {
+    let a = 10;
+    let aref = &a;
+
+    let b = a;
+
+    let b = get_number();
+
+    let b = *get_reference(&a);
+
+    let bytes: Vec<usize> = vec![1, 2, 3, 4];
+    let b = bytes[1..2][0];
+
+    //This produces a suggestion of 'let b = (a);' which
+    //will trigger the 'unused_parens' lint
+    let b = (a);
+
+    let b = a;
+
+    #[rustfmt::skip]
+    let b = a;
+
+    let b = &a;
+
+    let b = *aref;
+}
diff --git a/tests/ui/reference.rs b/tests/ui/deref_addrof.rs
index c63997fa858..5641a73cbc1 100644
--- a/tests/ui/reference.rs
+++ b/tests/ui/deref_addrof.rs
@@ -1,3 +1,5 @@
+// run-rustfix
+
 fn get_number() -> usize {
     10
 }
@@ -7,7 +9,7 @@ fn get_reference(n: &usize) -> &usize {
 }
 
 #[allow(clippy::many_single_char_names, clippy::double_parens)]
-#[allow(unused_variables)]
+#[allow(unused_variables, unused_parens)]
 #[warn(clippy::deref_addrof)]
 fn main() {
     let a = 10;
@@ -34,20 +36,4 @@ fn main() {
     let b = *&&a;
 
     let b = **&aref;
-
-    //This produces a suggestion of 'let b = *&a;' which
-    //will trigger the 'clippy::deref_addrof' lint again
-    let b = **&&a;
-
-    {
-        let mut x = 10;
-        let y = *&mut x;
-    }
-
-    {
-        //This produces a suggestion of 'let y = *&mut x' which
-        //will trigger the 'clippy::deref_addrof' lint again
-        let mut x = 10;
-        let y = **&mut &mut x;
-    }
 }
diff --git a/tests/ui/reference.stderr b/tests/ui/deref_addrof.stderr
index aea95a7fa9f..bc51719e8a7 100644
--- a/tests/ui/reference.stderr
+++ b/tests/ui/deref_addrof.stderr
@@ -1,5 +1,5 @@
 error: immediately dereferencing a reference
-  --> $DIR/reference.rs:16:13
+  --> $DIR/deref_addrof.rs:18:13
    |
 LL |     let b = *&a;
    |             ^^^ help: try this: `a`
@@ -7,64 +7,46 @@ LL |     let b = *&a;
    = note: `-D clippy::deref-addrof` implied by `-D warnings`
 
 error: immediately dereferencing a reference
-  --> $DIR/reference.rs:18:13
+  --> $DIR/deref_addrof.rs:20:13
    |
 LL |     let b = *&get_number();
    |             ^^^^^^^^^^^^^^ help: try this: `get_number()`
 
 error: immediately dereferencing a reference
-  --> $DIR/reference.rs:23:13
+  --> $DIR/deref_addrof.rs:25:13
    |
 LL |     let b = *&bytes[1..2][0];
    |             ^^^^^^^^^^^^^^^^ help: try this: `bytes[1..2][0]`
 
 error: immediately dereferencing a reference
-  --> $DIR/reference.rs:27:13
+  --> $DIR/deref_addrof.rs:29:13
    |
 LL |     let b = *&(a);
    |             ^^^^^ help: try this: `(a)`
 
 error: immediately dereferencing a reference
-  --> $DIR/reference.rs:29:13
+  --> $DIR/deref_addrof.rs:31:13
    |
 LL |     let b = *(&a);
    |             ^^^^^ help: try this: `a`
 
 error: immediately dereferencing a reference
-  --> $DIR/reference.rs:32:13
+  --> $DIR/deref_addrof.rs:34:13
    |
 LL |     let b = *((&a));
    |             ^^^^^^^ help: try this: `a`
 
 error: immediately dereferencing a reference
-  --> $DIR/reference.rs:34:13
+  --> $DIR/deref_addrof.rs:36:13
    |
 LL |     let b = *&&a;
    |             ^^^^ help: try this: `&a`
 
 error: immediately dereferencing a reference
-  --> $DIR/reference.rs:36:14
+  --> $DIR/deref_addrof.rs:38:14
    |
 LL |     let b = **&aref;
    |              ^^^^^^ help: try this: `aref`
 
-error: immediately dereferencing a reference
-  --> $DIR/reference.rs:40:14
-   |
-LL |     let b = **&&a;
-   |              ^^^^ help: try this: `&a`
-
-error: immediately dereferencing a reference
-  --> $DIR/reference.rs:44:17
-   |
-LL |         let y = *&mut x;
-   |                 ^^^^^^^ help: try this: `x`
-
-error: immediately dereferencing a reference
-  --> $DIR/reference.rs:51:18
-   |
-LL |         let y = **&mut &mut x;
-   |                  ^^^^^^^^^^^^ help: try this: `&mut x`
-
-error: aborting due to 11 previous errors
+error: aborting due to 8 previous errors
 
diff --git a/tests/ui/deref_addrof_double_trigger.rs b/tests/ui/deref_addrof_double_trigger.rs
new file mode 100644
index 00000000000..e19af5b9087
--- /dev/null
+++ b/tests/ui/deref_addrof_double_trigger.rs
@@ -0,0 +1,21 @@
+#[warn(clippy::deref_addrof)]
+#[allow(unused_variables)]
+fn main() {
+    let a = 10;
+
+    //This produces a suggestion of 'let b = *&a;' which
+    //will trigger the 'clippy::deref_addrof' lint again
+    let b = **&&a;
+
+    {
+        let mut x = 10;
+        let y = *&mut x;
+    }
+
+    {
+        //This produces a suggestion of 'let y = *&mut x' which
+        //will trigger the 'clippy::deref_addrof' lint again
+        let mut x = 10;
+        let y = **&mut &mut x;
+    }
+}
diff --git a/tests/ui/deref_addrof_double_trigger.stderr b/tests/ui/deref_addrof_double_trigger.stderr
new file mode 100644
index 00000000000..89284e1a8ed
--- /dev/null
+++ b/tests/ui/deref_addrof_double_trigger.stderr
@@ -0,0 +1,22 @@
+error: immediately dereferencing a reference
+  --> $DIR/deref_addrof_double_trigger.rs:8:14
+   |
+LL |     let b = **&&a;
+   |              ^^^^ help: try this: `&a`
+   |
+   = note: `-D clippy::deref-addrof` implied by `-D warnings`
+
+error: immediately dereferencing a reference
+  --> $DIR/deref_addrof_double_trigger.rs:12:17
+   |
+LL |         let y = *&mut x;
+   |                 ^^^^^^^ help: try this: `x`
+
+error: immediately dereferencing a reference
+  --> $DIR/deref_addrof_double_trigger.rs:19:18
+   |
+LL |         let y = **&mut &mut x;
+   |                  ^^^^^^^^^^^^ help: try this: `&mut x`
+
+error: aborting due to 3 previous errors
+