about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorEsteban Kuber <esteban@kuber.com.ar>2022-03-26 23:01:29 +0000
committerEsteban Kuber <esteban@kuber.com.ar>2022-04-04 21:06:35 +0000
commit883b93c7b7eb02ec85f4b8f9fb129efc403d4fb2 (patch)
treec1feadfadc8a41ef0cf3ca05ff59e8f49bbb0879 /src
parentac8cbbd200cfa77f03a8560f0305810e4f8f1375 (diff)
downloadrust-883b93c7b7eb02ec85f4b8f9fb129efc403d4fb2.tar.gz
rust-883b93c7b7eb02ec85f4b8f9fb129efc403d4fb2.zip
Suggest dereferncing when possible in E0277, fix #87437
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/traits/suggest-deferences/issue-39029.stderr2
-rw-r--r--src/test/ui/traits/suggest-deferences/issue-62530.stderr2
-rw-r--r--src/test/ui/traits/suggest-deferences/multiple-0.stderr2
-rw-r--r--src/test/ui/traits/suggest-deferences/root-obligation.fixed14
-rw-r--r--src/test/ui/traits/suggest-deferences/root-obligation.rs14
-rw-r--r--src/test/ui/traits/suggest-deferences/root-obligation.stderr24
6 files changed, 55 insertions, 3 deletions
diff --git a/src/test/ui/traits/suggest-deferences/issue-39029.stderr b/src/test/ui/traits/suggest-deferences/issue-39029.stderr
index 2c225f4311d..5c324cd38a3 100644
--- a/src/test/ui/traits/suggest-deferences/issue-39029.stderr
+++ b/src/test/ui/traits/suggest-deferences/issue-39029.stderr
@@ -5,7 +5,7 @@ LL |     let _errors = TcpListener::bind(&bad);
    |                   ----------------- ^^^^
    |                   |                 |
    |                   |                 the trait `ToSocketAddrs` is not implemented for `NoToSocketAddrs`
-   |                   |                 help: consider adding dereference here: `&*bad`
+   |                   |                 help: consider dereferencing here: `&*bad`
    |                   required by a bound introduced by this call
    |
    = note: required because of the requirements on the impl of `ToSocketAddrs` for `&NoToSocketAddrs`
diff --git a/src/test/ui/traits/suggest-deferences/issue-62530.stderr b/src/test/ui/traits/suggest-deferences/issue-62530.stderr
index b77af7ddf47..d129328dae8 100644
--- a/src/test/ui/traits/suggest-deferences/issue-62530.stderr
+++ b/src/test/ui/traits/suggest-deferences/issue-62530.stderr
@@ -5,7 +5,7 @@ LL |     takes_type_parameter(&string);  // Error
    |     -------------------- ^^^^^^^
    |     |                    |
    |     |                    the trait `SomeTrait` is not implemented for `&String`
-   |     |                    help: consider adding dereference here: `&*string`
+   |     |                    help: consider dereferencing here: `&*string`
    |     required by a bound introduced by this call
    |
 note: required by a bound in `takes_type_parameter`
diff --git a/src/test/ui/traits/suggest-deferences/multiple-0.stderr b/src/test/ui/traits/suggest-deferences/multiple-0.stderr
index bf9f85f1b45..efb3c7d123f 100644
--- a/src/test/ui/traits/suggest-deferences/multiple-0.stderr
+++ b/src/test/ui/traits/suggest-deferences/multiple-0.stderr
@@ -5,7 +5,7 @@ LL |     foo(&baz);
    |     --- ^^^^
    |     |   |
    |     |   the trait `Happy` is not implemented for `&Baz`
-   |     |   help: consider adding dereference here: `&***baz`
+   |     |   help: consider dereferencing here: `&***baz`
    |     required by a bound introduced by this call
    |
 note: required by a bound in `foo`
diff --git a/src/test/ui/traits/suggest-deferences/root-obligation.fixed b/src/test/ui/traits/suggest-deferences/root-obligation.fixed
new file mode 100644
index 00000000000..9fd19240678
--- /dev/null
+++ b/src/test/ui/traits/suggest-deferences/root-obligation.fixed
@@ -0,0 +1,14 @@
+// run-rustfix
+
+fn get_vowel_count(string: &str) -> usize {
+    string
+        .chars()
+        .filter(|c| "aeiou".contains(*c))
+        //~^ ERROR expected a `Fn<(char,)>` closure, found `char`
+        .count()
+}
+
+fn main() {
+    let _ = get_vowel_count("asdf");
+}
+
diff --git a/src/test/ui/traits/suggest-deferences/root-obligation.rs b/src/test/ui/traits/suggest-deferences/root-obligation.rs
new file mode 100644
index 00000000000..4dd0291b629
--- /dev/null
+++ b/src/test/ui/traits/suggest-deferences/root-obligation.rs
@@ -0,0 +1,14 @@
+// run-rustfix
+
+fn get_vowel_count(string: &str) -> usize {
+    string
+        .chars()
+        .filter(|c| "aeiou".contains(c))
+        //~^ ERROR expected a `Fn<(char,)>` closure, found `char`
+        .count()
+}
+
+fn main() {
+    let _ = get_vowel_count("asdf");
+}
+
diff --git a/src/test/ui/traits/suggest-deferences/root-obligation.stderr b/src/test/ui/traits/suggest-deferences/root-obligation.stderr
new file mode 100644
index 00000000000..16e03e79c75
--- /dev/null
+++ b/src/test/ui/traits/suggest-deferences/root-obligation.stderr
@@ -0,0 +1,24 @@
+error[E0277]: expected a `Fn<(char,)>` closure, found `char`
+  --> $DIR/root-obligation.rs:6:38
+   |
+LL |         .filter(|c| "aeiou".contains(c))
+   |                             -------- ^ expected an `Fn<(char,)>` closure, found `char`
+   |                             |
+   |                             required by a bound introduced by this call
+   |
+   = help: the trait `Fn<(char,)>` is not implemented for `char`
+   = note: required because of the requirements on the impl of `FnOnce<(char,)>` for `&char`
+   = note: required because of the requirements on the impl of `Pattern<'_>` for `&char`
+note: required by a bound in `core::str::<impl str>::contains`
+  --> $SRC_DIR/core/src/str/mod.rs:LL:COL
+   |
+LL |     pub fn contains<'a, P: Pattern<'a>>(&'a self, pat: P) -> bool {
+   |                            ^^^^^^^^^^^ required by this bound in `core::str::<impl str>::contains`
+help: consider dereferencing here
+   |
+LL |         .filter(|c| "aeiou".contains(*c))
+   |                                      +
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.