diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-07-25 23:21:13 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-07-25 23:21:13 +0200 |
| commit | 1a775b3b55263a82c3e69a942de5d2cdfb374bf1 (patch) | |
| tree | 4a262de0e961f4653af1cfa2c275f0a3adb75beb | |
| parent | f87f3db3a20173509977d726ad30454aa7b16522 (diff) | |
| parent | 3ab60264b504c1f51b2a9e3dfa20ef0d03bcdaed (diff) | |
| download | rust-1a775b3b55263a82c3e69a942de5d2cdfb374bf1.tar.gz rust-1a775b3b55263a82c3e69a942de5d2cdfb374bf1.zip | |
Rollup merge of #62981 - estebank:issue-62843, r=Centril
Add note suggesting to borrow a String argument to find Fix #62843.
| -rw-r--r-- | src/libcore/ops/function.rs | 4 | ||||
| -rw-r--r-- | src/test/ui/suggestions/issue-62843.rs | 5 | ||||
| -rw-r--r-- | src/test/ui/suggestions/issue-62843.stderr | 13 |
3 files changed, 22 insertions, 0 deletions
diff --git a/src/libcore/ops/function.rs b/src/libcore/ops/function.rs index c69f5fd9896..b9552eaa1a0 100644 --- a/src/libcore/ops/function.rs +++ b/src/libcore/ops/function.rs @@ -137,6 +137,10 @@ pub trait Fn<Args> : FnMut<Args> { #[rustc_paren_sugar] #[rustc_on_unimplemented( on(Args="()", note="wrap the `{Self}` in a closure with no arguments: `|| {{ /* code */ }}"), + on( + all(Args="(char,)", _Self="std::string::String"), + note="borrowing the `{Self}` might fix the problem" + ), message="expected a `{FnMut}<{Args}>` closure, found `{Self}`", label="expected an `FnMut<{Args}>` closure, found `{Self}`", )] diff --git a/src/test/ui/suggestions/issue-62843.rs b/src/test/ui/suggestions/issue-62843.rs new file mode 100644 index 00000000000..d96b12fd15a --- /dev/null +++ b/src/test/ui/suggestions/issue-62843.rs @@ -0,0 +1,5 @@ +fn main() { + let line = String::from("abc"); + let pattern = String::from("bc"); + println!("{:?}", line.find(pattern)); //~ ERROR E0277 +} diff --git a/src/test/ui/suggestions/issue-62843.stderr b/src/test/ui/suggestions/issue-62843.stderr new file mode 100644 index 00000000000..cc27b5b49b6 --- /dev/null +++ b/src/test/ui/suggestions/issue-62843.stderr @@ -0,0 +1,13 @@ +error[E0277]: expected a `std::ops::FnMut<(char,)>` closure, found `std::string::String` + --> $DIR/issue-62843.rs:4:27 + | +LL | println!("{:?}", line.find(pattern)); + | ^^^^ expected an `FnMut<(char,)>` closure, found `std::string::String` + | + = help: the trait `std::ops::FnMut<(char,)>` is not implemented for `std::string::String` + = note: borrowing the `std::string::String` might fix the problem + = note: required because of the requirements on the impl of `std::str::pattern::Pattern<'_>` for `std::string::String` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0277`. |
