summaryrefslogtreecommitdiffstats
path: root/tests/ui/binop
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/binop')
-rw-r--r--tests/ui/binop/eq-arr.rs7
-rw-r--r--tests/ui/binop/eq-arr.stderr22
-rw-r--r--tests/ui/binop/eq-vec.rs13
-rw-r--r--tests/ui/binop/eq-vec.stderr24
-rw-r--r--tests/ui/binop/issue-28837.stderr60
-rw-r--r--tests/ui/binop/issue-3820.stderr4
6 files changed, 98 insertions, 32 deletions
diff --git a/tests/ui/binop/eq-arr.rs b/tests/ui/binop/eq-arr.rs
new file mode 100644
index 000000000..a77c4c5aa
--- /dev/null
+++ b/tests/ui/binop/eq-arr.rs
@@ -0,0 +1,7 @@
+fn main() {
+ struct X;
+ //~^ HELP consider annotating `X` with `#[derive(PartialEq)]`
+ let xs = [X, X, X];
+ let eq = xs == [X, X, X];
+ //~^ ERROR binary operation `==` cannot be applied to type `[X; 3]`
+}
diff --git a/tests/ui/binop/eq-arr.stderr b/tests/ui/binop/eq-arr.stderr
new file mode 100644
index 000000000..a22f8e3ab
--- /dev/null
+++ b/tests/ui/binop/eq-arr.stderr
@@ -0,0 +1,22 @@
+error[E0369]: binary operation `==` cannot be applied to type `[X; 3]`
+ --> $DIR/eq-arr.rs:5:17
+ |
+LL | let eq = xs == [X, X, X];
+ | -- ^^ --------- [X; 3]
+ | |
+ | [X; 3]
+ |
+note: an implementation of `PartialEq` might be missing for `X`
+ --> $DIR/eq-arr.rs:2:5
+ |
+LL | struct X;
+ | ^^^^^^^^ must implement `PartialEq`
+help: consider annotating `X` with `#[derive(PartialEq)]`
+ |
+LL + #[derive(PartialEq)]
+LL | struct X;
+ |
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0369`.
diff --git a/tests/ui/binop/eq-vec.rs b/tests/ui/binop/eq-vec.rs
new file mode 100644
index 000000000..17ce8df85
--- /dev/null
+++ b/tests/ui/binop/eq-vec.rs
@@ -0,0 +1,13 @@
+fn main() {
+ #[derive(Debug)]
+ enum Foo {
+ //~^ HELP consider annotating `Foo` with `#[derive(PartialEq)]`
+ Bar,
+ Qux,
+ }
+
+ let vec1 = vec![Foo::Bar, Foo::Qux];
+ let vec2 = vec![Foo::Bar, Foo::Qux];
+ assert_eq!(vec1, vec2);
+ //~^ ERROR binary operation `==` cannot be applied to type `Vec<Foo>`
+}
diff --git a/tests/ui/binop/eq-vec.stderr b/tests/ui/binop/eq-vec.stderr
new file mode 100644
index 000000000..0a98cddfe
--- /dev/null
+++ b/tests/ui/binop/eq-vec.stderr
@@ -0,0 +1,24 @@
+error[E0369]: binary operation `==` cannot be applied to type `Vec<Foo>`
+ --> $DIR/eq-vec.rs:11:5
+ |
+LL | assert_eq!(vec1, vec2);
+ | ^^^^^^^^^^^^^^^^^^^^^^
+ | |
+ | Vec<Foo>
+ | Vec<Foo>
+ |
+note: an implementation of `PartialEq` might be missing for `Foo`
+ --> $DIR/eq-vec.rs:3:5
+ |
+LL | enum Foo {
+ | ^^^^^^^^ must implement `PartialEq`
+ = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
+help: consider annotating `Foo` with `#[derive(PartialEq)]`
+ |
+LL + #[derive(PartialEq)]
+LL | enum Foo {
+ |
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0369`.
diff --git a/tests/ui/binop/issue-28837.stderr b/tests/ui/binop/issue-28837.stderr
index bb9f3b8af..6c98edd3a 100644
--- a/tests/ui/binop/issue-28837.stderr
+++ b/tests/ui/binop/issue-28837.stderr
@@ -6,11 +6,11 @@ LL | a + a;
| |
| A
|
-note: an implementation of `Add<_>` might be missing for `A`
+note: an implementation of `Add` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `Add<_>`
+ | ^^^^^^^^ must implement `Add`
note: the trait `Add` must be implemented
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
@@ -22,11 +22,11 @@ LL | a - a;
| |
| A
|
-note: an implementation of `Sub<_>` might be missing for `A`
+note: an implementation of `Sub` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `Sub<_>`
+ | ^^^^^^^^ must implement `Sub`
note: the trait `Sub` must be implemented
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
@@ -38,11 +38,11 @@ LL | a * a;
| |
| A
|
-note: an implementation of `Mul<_>` might be missing for `A`
+note: an implementation of `Mul` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `Mul<_>`
+ | ^^^^^^^^ must implement `Mul`
note: the trait `Mul` must be implemented
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
@@ -54,11 +54,11 @@ LL | a / a;
| |
| A
|
-note: an implementation of `Div<_>` might be missing for `A`
+note: an implementation of `Div` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `Div<_>`
+ | ^^^^^^^^ must implement `Div`
note: the trait `Div` must be implemented
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
@@ -70,11 +70,11 @@ LL | a % a;
| |
| A
|
-note: an implementation of `Rem<_>` might be missing for `A`
+note: an implementation of `Rem` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `Rem<_>`
+ | ^^^^^^^^ must implement `Rem`
note: the trait `Rem` must be implemented
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL
@@ -86,11 +86,11 @@ LL | a & a;
| |
| A
|
-note: an implementation of `BitAnd<_>` might be missing for `A`
+note: an implementation of `BitAnd` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `BitAnd<_>`
+ | ^^^^^^^^ must implement `BitAnd`
note: the trait `BitAnd` must be implemented
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
@@ -102,11 +102,11 @@ LL | a | a;
| |
| A
|
-note: an implementation of `BitOr<_>` might be missing for `A`
+note: an implementation of `BitOr` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `BitOr<_>`
+ | ^^^^^^^^ must implement `BitOr`
note: the trait `BitOr` must be implemented
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
@@ -118,11 +118,11 @@ LL | a << a;
| |
| A
|
-note: an implementation of `Shl<_>` might be missing for `A`
+note: an implementation of `Shl` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `Shl<_>`
+ | ^^^^^^^^ must implement `Shl`
note: the trait `Shl` must be implemented
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
@@ -134,11 +134,11 @@ LL | a >> a;
| |
| A
|
-note: an implementation of `Shr<_>` might be missing for `A`
+note: an implementation of `Shr` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `Shr<_>`
+ | ^^^^^^^^ must implement `Shr`
note: the trait `Shr` must be implemented
--> $SRC_DIR/core/src/ops/bit.rs:LL:COL
@@ -150,11 +150,11 @@ LL | a == a;
| |
| A
|
-note: an implementation of `PartialEq<_>` might be missing for `A`
+note: an implementation of `PartialEq` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `PartialEq<_>`
+ | ^^^^^^^^ must implement `PartialEq`
help: consider annotating `A` with `#[derive(PartialEq)]`
|
LL + #[derive(PartialEq)]
@@ -169,11 +169,11 @@ LL | a != a;
| |
| A
|
-note: an implementation of `PartialEq<_>` might be missing for `A`
+note: an implementation of `PartialEq` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `PartialEq<_>`
+ | ^^^^^^^^ must implement `PartialEq`
help: consider annotating `A` with `#[derive(PartialEq)]`
|
LL + #[derive(PartialEq)]
@@ -188,11 +188,11 @@ LL | a < a;
| |
| A
|
-note: an implementation of `PartialOrd<_>` might be missing for `A`
+note: an implementation of `PartialOrd` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `PartialOrd<_>`
+ | ^^^^^^^^ must implement `PartialOrd`
help: consider annotating `A` with `#[derive(PartialEq, PartialOrd)]`
|
LL + #[derive(PartialEq, PartialOrd)]
@@ -207,11 +207,11 @@ LL | a <= a;
| |
| A
|
-note: an implementation of `PartialOrd<_>` might be missing for `A`
+note: an implementation of `PartialOrd` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `PartialOrd<_>`
+ | ^^^^^^^^ must implement `PartialOrd`
help: consider annotating `A` with `#[derive(PartialEq, PartialOrd)]`
|
LL + #[derive(PartialEq, PartialOrd)]
@@ -226,11 +226,11 @@ LL | a > a;
| |
| A
|
-note: an implementation of `PartialOrd<_>` might be missing for `A`
+note: an implementation of `PartialOrd` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `PartialOrd<_>`
+ | ^^^^^^^^ must implement `PartialOrd`
help: consider annotating `A` with `#[derive(PartialEq, PartialOrd)]`
|
LL + #[derive(PartialEq, PartialOrd)]
@@ -245,11 +245,11 @@ LL | a >= a;
| |
| A
|
-note: an implementation of `PartialOrd<_>` might be missing for `A`
+note: an implementation of `PartialOrd` might be missing for `A`
--> $DIR/issue-28837.rs:1:1
|
LL | struct A;
- | ^^^^^^^^ must implement `PartialOrd<_>`
+ | ^^^^^^^^ must implement `PartialOrd`
help: consider annotating `A` with `#[derive(PartialEq, PartialOrd)]`
|
LL + #[derive(PartialEq, PartialOrd)]
diff --git a/tests/ui/binop/issue-3820.stderr b/tests/ui/binop/issue-3820.stderr
index c313ed603..cfa78a41d 100644
--- a/tests/ui/binop/issue-3820.stderr
+++ b/tests/ui/binop/issue-3820.stderr
@@ -6,11 +6,11 @@ LL | let w = u * 3;
| |
| Thing
|
-note: an implementation of `Mul<_>` might be missing for `Thing`
+note: an implementation of `Mul<{integer}>` might be missing for `Thing`
--> $DIR/issue-3820.rs:1:1
|
LL | struct Thing {
- | ^^^^^^^^^^^^ must implement `Mul<_>`
+ | ^^^^^^^^^^^^ must implement `Mul<{integer}>`
note: the trait `Mul` must be implemented
--> $SRC_DIR/core/src/ops/arith.rs:LL:COL