mirror of https://github.com/rust-lang/rust.git
Split up cmp_owned tests, add run-rustfix
Some of the cmp_owned tests emitted non-machine-applicable suggestions, so I moved them to `tests/ui/cmp_owned/without_suggestion.rs` and added `// run-rustfix` to the other half. cc #3630
This commit is contained in:
parent
6d9ee9e5eb
commit
9a0b598b73
|
@ -0,0 +1,72 @@
|
||||||
|
// run-rustfix
|
||||||
|
|
||||||
|
#[warn(clippy::cmp_owned)]
|
||||||
|
#[allow(clippy::unnecessary_operation, clippy::no_effect, unused_must_use, clippy::eq_op)]
|
||||||
|
fn main() {
|
||||||
|
fn with_to_string(x: &str) {
|
||||||
|
x != "foo";
|
||||||
|
|
||||||
|
"foo" != x;
|
||||||
|
}
|
||||||
|
|
||||||
|
let x = "oh";
|
||||||
|
|
||||||
|
with_to_string(x);
|
||||||
|
|
||||||
|
x != "foo";
|
||||||
|
|
||||||
|
x != "foo";
|
||||||
|
|
||||||
|
42.to_string() == "42";
|
||||||
|
|
||||||
|
Foo == Foo;
|
||||||
|
|
||||||
|
"abc".chars().filter(|c| *c != 'X');
|
||||||
|
|
||||||
|
"abc".chars().filter(|c| *c != 'X');
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Foo;
|
||||||
|
|
||||||
|
impl PartialEq for Foo {
|
||||||
|
// Allow this here, because it emits the lint
|
||||||
|
// without a suggestion. This is tested in
|
||||||
|
// `tests/ui/cmp_owned_without_suggestion.rs`
|
||||||
|
#[allow(clippy::cmp_owned)]
|
||||||
|
fn eq(&self, other: &Self) -> bool {
|
||||||
|
self.to_owned() == *other
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToOwned for Foo {
|
||||||
|
type Owned = Bar;
|
||||||
|
fn to_owned(&self) -> Bar {
|
||||||
|
Bar
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(PartialEq)]
|
||||||
|
struct Bar;
|
||||||
|
|
||||||
|
impl PartialEq<Foo> for Bar {
|
||||||
|
fn eq(&self, _: &Foo) -> bool {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl std::borrow::Borrow<Foo> for Bar {
|
||||||
|
fn borrow(&self) -> &Foo {
|
||||||
|
static FOO: Foo = Foo;
|
||||||
|
&FOO
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(PartialEq)]
|
||||||
|
struct Baz;
|
||||||
|
|
||||||
|
impl ToOwned for Baz {
|
||||||
|
type Owned = Baz;
|
||||||
|
fn to_owned(&self) -> Baz {
|
||||||
|
Baz
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,7 @@
|
||||||
|
// run-rustfix
|
||||||
|
|
||||||
#[warn(clippy::cmp_owned)]
|
#[warn(clippy::cmp_owned)]
|
||||||
#[allow(clippy::unnecessary_operation)]
|
#[allow(clippy::unnecessary_operation, clippy::no_effect, unused_must_use, clippy::eq_op)]
|
||||||
fn main() {
|
fn main() {
|
||||||
fn with_to_string(x: &str) {
|
fn with_to_string(x: &str) {
|
||||||
x != "foo".to_string();
|
x != "foo".to_string();
|
||||||
|
@ -22,21 +24,15 @@ fn main() {
|
||||||
"abc".chars().filter(|c| c.to_owned() != 'X');
|
"abc".chars().filter(|c| c.to_owned() != 'X');
|
||||||
|
|
||||||
"abc".chars().filter(|c| *c != 'X');
|
"abc".chars().filter(|c| *c != 'X');
|
||||||
|
|
||||||
let x = &Baz;
|
|
||||||
let y = &Baz;
|
|
||||||
|
|
||||||
y.to_owned() == *x;
|
|
||||||
|
|
||||||
let x = &&Baz;
|
|
||||||
let y = &Baz;
|
|
||||||
|
|
||||||
y.to_owned() == **x;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Foo;
|
struct Foo;
|
||||||
|
|
||||||
impl PartialEq for Foo {
|
impl PartialEq for Foo {
|
||||||
|
// Allow this here, because it emits the lint
|
||||||
|
// without a suggestion. This is tested in
|
||||||
|
// `tests/ui/cmp_owned_without_suggestion.rs`
|
||||||
|
#[allow(clippy::cmp_owned)]
|
||||||
fn eq(&self, other: &Self) -> bool {
|
fn eq(&self, other: &Self) -> bool {
|
||||||
self.to_owned() == *other
|
self.to_owned() == *other
|
||||||
}
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
error: this creates an owned instance just for comparison
|
error: this creates an owned instance just for comparison
|
||||||
--> $DIR/cmp_owned.rs:5:14
|
--> $DIR/with_suggestion.rs:7:14
|
||||||
|
|
|
|
||||||
LL | x != "foo".to_string();
|
LL | x != "foo".to_string();
|
||||||
| ^^^^^^^^^^^^^^^^^ help: try: `"foo"`
|
| ^^^^^^^^^^^^^^^^^ help: try: `"foo"`
|
||||||
|
@ -7,52 +7,34 @@ LL | x != "foo".to_string();
|
||||||
= note: `-D clippy::cmp-owned` implied by `-D warnings`
|
= note: `-D clippy::cmp-owned` implied by `-D warnings`
|
||||||
|
|
||||||
error: this creates an owned instance just for comparison
|
error: this creates an owned instance just for comparison
|
||||||
--> $DIR/cmp_owned.rs:7:9
|
--> $DIR/with_suggestion.rs:9:9
|
||||||
|
|
|
|
||||||
LL | "foo".to_string() != x;
|
LL | "foo".to_string() != x;
|
||||||
| ^^^^^^^^^^^^^^^^^ help: try: `"foo"`
|
| ^^^^^^^^^^^^^^^^^ help: try: `"foo"`
|
||||||
|
|
||||||
error: this creates an owned instance just for comparison
|
error: this creates an owned instance just for comparison
|
||||||
--> $DIR/cmp_owned.rs:14:10
|
--> $DIR/with_suggestion.rs:16:10
|
||||||
|
|
|
|
||||||
LL | x != "foo".to_owned();
|
LL | x != "foo".to_owned();
|
||||||
| ^^^^^^^^^^^^^^^^ help: try: `"foo"`
|
| ^^^^^^^^^^^^^^^^ help: try: `"foo"`
|
||||||
|
|
||||||
error: this creates an owned instance just for comparison
|
error: this creates an owned instance just for comparison
|
||||||
--> $DIR/cmp_owned.rs:16:10
|
--> $DIR/with_suggestion.rs:18:10
|
||||||
|
|
|
|
||||||
LL | x != String::from("foo");
|
LL | x != String::from("foo");
|
||||||
| ^^^^^^^^^^^^^^^^^^^ help: try: `"foo"`
|
| ^^^^^^^^^^^^^^^^^^^ help: try: `"foo"`
|
||||||
|
|
||||||
error: this creates an owned instance just for comparison
|
error: this creates an owned instance just for comparison
|
||||||
--> $DIR/cmp_owned.rs:20:5
|
--> $DIR/with_suggestion.rs:22:5
|
||||||
|
|
|
|
||||||
LL | Foo.to_owned() == Foo;
|
LL | Foo.to_owned() == Foo;
|
||||||
| ^^^^^^^^^^^^^^ help: try: `Foo`
|
| ^^^^^^^^^^^^^^ help: try: `Foo`
|
||||||
|
|
||||||
error: this creates an owned instance just for comparison
|
error: this creates an owned instance just for comparison
|
||||||
--> $DIR/cmp_owned.rs:22:30
|
--> $DIR/with_suggestion.rs:24:30
|
||||||
|
|
|
|
||||||
LL | "abc".chars().filter(|c| c.to_owned() != 'X');
|
LL | "abc".chars().filter(|c| c.to_owned() != 'X');
|
||||||
| ^^^^^^^^^^^^ help: try: `*c`
|
| ^^^^^^^^^^^^ help: try: `*c`
|
||||||
|
|
||||||
error: this creates an owned instance just for comparison
|
error: aborting due to 6 previous errors
|
||||||
--> $DIR/cmp_owned.rs:29:5
|
|
||||||
|
|
|
||||||
LL | y.to_owned() == *x;
|
|
||||||
| ^^^^^^^^^^^^^^^^^^ try implementing the comparison without allocating
|
|
||||||
|
|
||||||
error: this creates an owned instance just for comparison
|
|
||||||
--> $DIR/cmp_owned.rs:34:5
|
|
||||||
|
|
|
||||||
LL | y.to_owned() == **x;
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^ try implementing the comparison without allocating
|
|
||||||
|
|
||||||
error: this creates an owned instance just for comparison
|
|
||||||
--> $DIR/cmp_owned.rs:41:9
|
|
||||||
|
|
|
||||||
LL | self.to_owned() == *other
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^ try implementing the comparison without allocating
|
|
||||||
|
|
||||||
error: aborting due to 9 previous errors
|
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
#[allow(clippy::unnecessary_operation)]
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let x = &Baz;
|
||||||
|
let y = &Baz;
|
||||||
|
y.to_owned() == *x;
|
||||||
|
|
||||||
|
let x = &&Baz;
|
||||||
|
let y = &Baz;
|
||||||
|
y.to_owned() == **x;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Foo;
|
||||||
|
|
||||||
|
impl PartialEq for Foo {
|
||||||
|
fn eq(&self, other: &Self) -> bool {
|
||||||
|
self.to_owned() == *other
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ToOwned for Foo {
|
||||||
|
type Owned = Bar;
|
||||||
|
fn to_owned(&self) -> Bar {
|
||||||
|
Bar
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(PartialEq)]
|
||||||
|
struct Baz;
|
||||||
|
|
||||||
|
impl ToOwned for Baz {
|
||||||
|
type Owned = Baz;
|
||||||
|
fn to_owned(&self) -> Baz {
|
||||||
|
Baz
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(PartialEq)]
|
||||||
|
struct Bar;
|
||||||
|
|
||||||
|
impl PartialEq<Foo> for Bar {
|
||||||
|
fn eq(&self, _: &Foo) -> bool {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl std::borrow::Borrow<Foo> for Bar {
|
||||||
|
fn borrow(&self) -> &Foo {
|
||||||
|
static FOO: Foo = Foo;
|
||||||
|
&FOO
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
error: this creates an owned instance just for comparison
|
||||||
|
--> $DIR/without_suggestion.rs:6:5
|
||||||
|
|
|
||||||
|
LL | y.to_owned() == *x;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^ try implementing the comparison without allocating
|
||||||
|
|
|
||||||
|
= note: `-D clippy::cmp-owned` implied by `-D warnings`
|
||||||
|
|
||||||
|
error: this creates an owned instance just for comparison
|
||||||
|
--> $DIR/without_suggestion.rs:10:5
|
||||||
|
|
|
||||||
|
LL | y.to_owned() == **x;
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^ try implementing the comparison without allocating
|
||||||
|
|
||||||
|
error: this creates an owned instance just for comparison
|
||||||
|
--> $DIR/without_suggestion.rs:17:9
|
||||||
|
|
|
||||||
|
LL | self.to_owned() == *other
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^ try implementing the comparison without allocating
|
||||||
|
|
||||||
|
error: aborting due to 3 previous errors
|
||||||
|
|
Loading…
Reference in New Issue