about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAlex Macleod <alex@macleod.io>2022-10-01 21:54:22 +0000
committerAlex Macleod <alex@macleod.io>2022-10-01 22:31:10 +0000
commit52a68dc097cc8064a7464598bca959f2706aab18 (patch)
tree7077ccebce36421dd3a20e73bbba33c9a1208414 /src
parent64243c6f998df7cea3c86488c67481de09fec31c (diff)
downloadrust-52a68dc097cc8064a7464598bca959f2706aab18.tar.gz
rust-52a68dc097cc8064a7464598bca959f2706aab18.zip
lint nested patterns and slice patterns in `needless_borrowed_reference`
Diffstat (limited to 'src')
-rw-r--r--src/docs/needless_borrowed_reference.txt18
1 files changed, 5 insertions, 13 deletions
diff --git a/src/docs/needless_borrowed_reference.txt b/src/docs/needless_borrowed_reference.txt
index 55faa0cf571..152459ba1c9 100644
--- a/src/docs/needless_borrowed_reference.txt
+++ b/src/docs/needless_borrowed_reference.txt
@@ -1,30 +1,22 @@
 ### What it does
-Checks for bindings that destructure a reference and borrow the inner
+Checks for bindings that needlessly destructure a reference and borrow the inner
 value with `&ref`.
 
 ### Why is this bad?
 This pattern has no effect in almost all cases.
 
-### Known problems
-In some cases, `&ref` is needed to avoid a lifetime mismatch error.
-Example:
-```
-fn foo(a: &Option<String>, b: &Option<String>) {
-    match (a, b) {
-        (None, &ref c) | (&ref c, None) => (),
-        (&Some(ref c), _) => (),
-    };
-}
-```
-
 ### Example
 ```
 let mut v = Vec::<String>::new();
 v.iter_mut().filter(|&ref a| a.is_empty());
+
+if let &[ref first, ref second] = v.as_slice() {}
 ```
 
 Use instead:
 ```
 let mut v = Vec::<String>::new();
 v.iter_mut().filter(|a| a.is_empty());
+
+if let [first, second] = v.as_slice() {}
 ```
\ No newline at end of file