Add ui test for multiple_bound_locations lint

This commit is contained in:
Guillaume Gomez 2024-02-10 15:05:11 +01:00
parent d654acd554
commit 6955a8ac4e
2 changed files with 118 additions and 0 deletions

View File

@ -0,0 +1,59 @@
#![warn(clippy::multiple_bound_locations)]
fn ty<F: std::fmt::Debug>(a: F)
//~^ ERROR: bound is defined in more than one place
where
F: Sized,
{
}
fn lifetime<'a, 'b: 'a, 'c>(a: &'b str, b: &'a str, c: &'c str)
//~^ ERROR: bound is defined in more than one place
where
'b: 'c,
{
}
fn ty_pred<F: Sized>()
//~^ ERROR: bound is defined in more than one place
where
for<'a> F: Send + 'a,
{
}
struct B;
impl B {
fn ty<F: std::fmt::Debug>(a: F)
//~^ ERROR: bound is defined in more than one place
where
F: Sized,
{
}
fn lifetime<'a, 'b: 'a, 'c>(a: &'b str, b: &'a str, c: &'c str)
//~^ ERROR: bound is defined in more than one place
where
'b: 'c,
{
}
fn ty_pred<F: Sized>()
//~^ ERROR: bound is defined in more than one place
where
for<'a> F: Send + 'a,
{
}
}
struct C<F>(F);
impl<F> C<F> {
fn foo(_f: F) -> Self
where F: std::fmt::Display
{
todo!()
}
}
fn main() {}

View File

@ -0,0 +1,59 @@
error: bound is defined in more than one place
--> tests/ui/multiple_bound_locations.rs:3:7
|
LL | fn ty<F: std::fmt::Debug>(a: F)
| ^
...
LL | F: Sized,
| ^
|
= note: `-D clippy::multiple-bound-locations` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(clippy::multiple_bound_locations)]`
error: bound is defined in more than one place
--> tests/ui/multiple_bound_locations.rs:10:17
|
LL | fn lifetime<'a, 'b: 'a, 'c>(a: &'b str, b: &'a str, c: &'c str)
| ^^
...
LL | 'b: 'c,
| ^^
error: bound is defined in more than one place
--> tests/ui/multiple_bound_locations.rs:17:12
|
LL | fn ty_pred<F: Sized>()
| ^
...
LL | for<'a> F: Send + 'a,
| ^
error: bound is defined in more than one place
--> tests/ui/multiple_bound_locations.rs:27:11
|
LL | fn ty<F: std::fmt::Debug>(a: F)
| ^
...
LL | F: Sized,
| ^
error: bound is defined in more than one place
--> tests/ui/multiple_bound_locations.rs:34:21
|
LL | fn lifetime<'a, 'b: 'a, 'c>(a: &'b str, b: &'a str, c: &'c str)
| ^^
...
LL | 'b: 'c,
| ^^
error: bound is defined in more than one place
--> tests/ui/multiple_bound_locations.rs:41:16
|
LL | fn ty_pred<F: Sized>()
| ^
...
LL | for<'a> F: Send + 'a,
| ^
error: aborting due to 6 previous errors