diff options
| author | Esteban Kuber <esteban@kuber.com.ar> | 2021-10-13 16:07:22 +0000 |
|---|---|---|
| committer | Esteban Kuber <esteban@kuber.com.ar> | 2021-11-20 19:19:34 +0000 |
| commit | cecbd7657a80a824bdcf60fb43acc7af000ac2c1 (patch) | |
| tree | 5bf2d8aff434a406360d36494e14e8faea8673b9 /src | |
| parent | 9fa165d11b5eeedcf6e04f4812704d7fccf60ed6 (diff) | |
Suggest constraining `fn` type params when appropriate
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/issues/issue-35677.fixed | 11 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-35677.rs | 3 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-35677.stderr | 6 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-69725.fixed | 13 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-69725.rs | 2 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-69725.stderr | 6 |
6 files changed, 39 insertions, 2 deletions
diff --git a/src/test/ui/issues/issue-35677.fixed b/src/test/ui/issues/issue-35677.fixed new file mode 100644 index 00000000000..08174d8d8d5 --- /dev/null +++ b/src/test/ui/issues/issue-35677.fixed @@ -0,0 +1,11 @@ +// run-rustfix +#![allow(dead_code)] +use std::collections::HashSet; +use std::hash::Hash; + +fn is_subset<T>(this: &HashSet<T>, other: &HashSet<T>) -> bool where T: Eq, T: Hash { + this.is_subset(other) + //~^ ERROR the method +} + +fn main() {} diff --git a/src/test/ui/issues/issue-35677.rs b/src/test/ui/issues/issue-35677.rs index 15d13979062..2cb394386b8 100644 --- a/src/test/ui/issues/issue-35677.rs +++ b/src/test/ui/issues/issue-35677.rs @@ -1,4 +1,7 @@ +// run-rustfix +#![allow(dead_code)] use std::collections::HashSet; +use std::hash::Hash; fn is_subset<T>(this: &HashSet<T>, other: &HashSet<T>) -> bool { this.is_subset(other) diff --git a/src/test/ui/issues/issue-35677.stderr b/src/test/ui/issues/issue-35677.stderr index ab59e5d1acf..a2201b946a6 100644 --- a/src/test/ui/issues/issue-35677.stderr +++ b/src/test/ui/issues/issue-35677.stderr @@ -1,5 +1,5 @@ error[E0599]: the method `is_subset` exists for reference `&HashSet<T>`, but its trait bounds were not satisfied - --> $DIR/issue-35677.rs:4:10 + --> $DIR/issue-35677.rs:7:10 | LL | this.is_subset(other) | ^^^^^^^^^ method cannot be called on `&HashSet<T>` due to unsatisfied trait bounds @@ -7,6 +7,10 @@ LL | this.is_subset(other) = note: the following trait bounds were not satisfied: `T: Eq` `T: Hash` +help: consider restricting the type parameters to satisfy the trait bounds + | +LL | fn is_subset<T>(this: &HashSet<T>, other: &HashSet<T>) -> bool where T: Eq, T: Hash { + | ++++++++++++++++++++ error: aborting due to previous error diff --git a/src/test/ui/issues/issue-69725.fixed b/src/test/ui/issues/issue-69725.fixed new file mode 100644 index 00000000000..d57badcfd8c --- /dev/null +++ b/src/test/ui/issues/issue-69725.fixed @@ -0,0 +1,13 @@ +// run-rustfix +// aux-build:issue-69725.rs +#![allow(dead_code)] + +extern crate issue_69725; +use issue_69725::Struct; + +fn crash<A>() where A: Clone { + let _ = Struct::<A>::new().clone(); + //~^ ERROR: the method +} + +fn main() {} diff --git a/src/test/ui/issues/issue-69725.rs b/src/test/ui/issues/issue-69725.rs index 7c77293945e..9c88969c5cf 100644 --- a/src/test/ui/issues/issue-69725.rs +++ b/src/test/ui/issues/issue-69725.rs @@ -1,4 +1,6 @@ +// run-rustfix // aux-build:issue-69725.rs +#![allow(dead_code)] extern crate issue_69725; use issue_69725::Struct; diff --git a/src/test/ui/issues/issue-69725.stderr b/src/test/ui/issues/issue-69725.stderr index b1ba89f6cbe..6395bca300c 100644 --- a/src/test/ui/issues/issue-69725.stderr +++ b/src/test/ui/issues/issue-69725.stderr @@ -1,5 +1,5 @@ error[E0599]: the method `clone` exists for struct `Struct<A>`, but its trait bounds were not satisfied - --> $DIR/issue-69725.rs:7:32 + --> $DIR/issue-69725.rs:9:32 | LL | let _ = Struct::<A>::new().clone(); | ^^^^^ method cannot be called on `Struct<A>` due to unsatisfied trait bounds @@ -12,6 +12,10 @@ LL | pub struct Struct<A>(A); = note: the following trait bounds were not satisfied: `A: Clone` which is required by `Struct<A>: Clone` +help: consider restricting the type parameter to satisfy the trait bound + | +LL | fn crash<A>() where A: Clone { + | ++++++++++++++ error: aborting due to previous error |
