about summary refs log tree commit diff
path: root/tests/ui/traits
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/traits')
-rw-r--r--tests/ui/traits/alias/bounds.rs2
-rw-r--r--tests/ui/traits/alias/bounds.stderr10
-rw-r--r--tests/ui/traits/alias/syntax.rs2
-rw-r--r--tests/ui/traits/bound/impl-comparison-duplicates.rs2
-rw-r--r--tests/ui/traits/bound/recursion.rs2
-rw-r--r--tests/ui/traits/composition-trivial.rs2
-rw-r--r--tests/ui/traits/cycle-generic-bound.rs2
-rw-r--r--tests/ui/traits/default-method/bound-subst4.rs2
-rw-r--r--tests/ui/traits/default-method/bound-subst4.stderr13
-rw-r--r--tests/ui/traits/default-method/mut.rs2
-rw-r--r--tests/ui/traits/impl-inherent-prefer-over-trait.rs2
-rw-r--r--tests/ui/traits/impl-inherent-prefer-over-trait.stderr12
-rw-r--r--tests/ui/traits/impl-object-overlap-issue-23853.rs2
-rw-r--r--tests/ui/traits/impl-object-overlap-issue-23853.stderr12
-rw-r--r--tests/ui/traits/impl.rs2
-rw-r--r--tests/ui/traits/impl.stderr12
-rw-r--r--tests/ui/traits/issue-38033.rs2
-rw-r--r--tests/ui/traits/issue-38033.stderr13
-rw-r--r--tests/ui/traits/issue-56488.rs2
-rw-r--r--tests/ui/traits/issue-59029-2.rs2
-rw-r--r--tests/ui/traits/issue-6128.rs2
-rw-r--r--tests/ui/traits/issue-6128.stderr14
-rw-r--r--tests/ui/traits/multidispatch-conditional-impl-not-considered.rs2
-rw-r--r--tests/ui/traits/multidispatch-conditional-impl-not-considered.stderr10
-rw-r--r--tests/ui/traits/multidispatch-infer-convert-target.rs2
-rw-r--r--tests/ui/traits/multidispatch-infer-convert-target.stderr12
-rw-r--r--tests/ui/traits/negative-impls/negative-specializes-negative.rs2
-rw-r--r--tests/ui/traits/trait-upcasting/lifetime.rs4
-rw-r--r--tests/ui/traits/trait-upcasting/lifetime.stderr25
-rw-r--r--tests/ui/traits/trait-upcasting/replace-vptr.rs4
-rw-r--r--tests/ui/traits/trait-upcasting/replace-vptr.stderr20
-rw-r--r--tests/ui/traits/use-before-def.rs2
-rw-r--r--tests/ui/traits/wf-object/reverse-order.rs2
33 files changed, 177 insertions, 24 deletions
diff --git a/tests/ui/traits/alias/bounds.rs b/tests/ui/traits/alias/bounds.rs
index b97eb38c5af..7b1920bc8f2 100644
--- a/tests/ui/traits/alias/bounds.rs
+++ b/tests/ui/traits/alias/bounds.rs
@@ -4,7 +4,7 @@
 
 use std::marker::PhantomData;
 
-trait Empty {}
+trait Empty {} //~ WARN trait `Empty` is never used
 trait EmptyAlias = Empty;
 trait CloneDefault = Clone + Default;
 trait SendSyncAlias = Send + Sync;
diff --git a/tests/ui/traits/alias/bounds.stderr b/tests/ui/traits/alias/bounds.stderr
new file mode 100644
index 00000000000..7fb8e918da3
--- /dev/null
+++ b/tests/ui/traits/alias/bounds.stderr
@@ -0,0 +1,10 @@
+warning: trait `Empty` is never used
+  --> $DIR/bounds.rs:7:7
+   |
+LL | trait Empty {}
+   |       ^^^^^
+   |
+   = note: `#[warn(dead_code)]` on by default
+
+warning: 1 warning emitted
+
diff --git a/tests/ui/traits/alias/syntax.rs b/tests/ui/traits/alias/syntax.rs
index 17557a51aa7..50c77d33c6b 100644
--- a/tests/ui/traits/alias/syntax.rs
+++ b/tests/ui/traits/alias/syntax.rs
@@ -1,4 +1,4 @@
-// run-pass
+// check-pass
 
 #![feature(trait_alias)]
 
diff --git a/tests/ui/traits/bound/impl-comparison-duplicates.rs b/tests/ui/traits/bound/impl-comparison-duplicates.rs
index de6c2afa2bb..a59662c2797 100644
--- a/tests/ui/traits/bound/impl-comparison-duplicates.rs
+++ b/tests/ui/traits/bound/impl-comparison-duplicates.rs
@@ -1,4 +1,4 @@
-// run-pass
+// check-pass
 // Tests that type parameter bounds on an implementation need not match the
 // trait exactly, as long as the implementation doesn't demand *more* bounds
 // than the trait.
diff --git a/tests/ui/traits/bound/recursion.rs b/tests/ui/traits/bound/recursion.rs
index 0023ff654e8..767040dff3f 100644
--- a/tests/ui/traits/bound/recursion.rs
+++ b/tests/ui/traits/bound/recursion.rs
@@ -1,4 +1,4 @@
-// run-pass
+// check-pass
 // pretty-expanded FIXME #23616
 
 trait I { fn i(&self) -> Self; }
diff --git a/tests/ui/traits/composition-trivial.rs b/tests/ui/traits/composition-trivial.rs
index 90e5dcd68e8..41e6a556074 100644
--- a/tests/ui/traits/composition-trivial.rs
+++ b/tests/ui/traits/composition-trivial.rs
@@ -1,4 +1,4 @@
-// run-pass
+// check-pass
 // pretty-expanded FIXME #23616
 
 trait Foo {
diff --git a/tests/ui/traits/cycle-generic-bound.rs b/tests/ui/traits/cycle-generic-bound.rs
index 9241f3789d7..77685c26da2 100644
--- a/tests/ui/traits/cycle-generic-bound.rs
+++ b/tests/ui/traits/cycle-generic-bound.rs
@@ -1,4 +1,4 @@
-// run-pass
+// check-pass
 // Regression test for #15477. This test just needs to compile.
 
 // pretty-expanded FIXME #23616
diff --git a/tests/ui/traits/default-method/bound-subst4.rs b/tests/ui/traits/default-method/bound-subst4.rs
index ef133064582..6bc4cf0ef80 100644
--- a/tests/ui/traits/default-method/bound-subst4.rs
+++ b/tests/ui/traits/default-method/bound-subst4.rs
@@ -4,7 +4,7 @@
 
 trait A<T> {
     fn g(&self, x: usize) -> usize { x }
-    fn h(&self, x: T) { }
+    fn h(&self, x: T) { } //~ WARN method `h` is never used
 }
 
 impl<T> A<T> for isize { }
diff --git a/tests/ui/traits/default-method/bound-subst4.stderr b/tests/ui/traits/default-method/bound-subst4.stderr
new file mode 100644
index 00000000000..548c46f1233
--- /dev/null
+++ b/tests/ui/traits/default-method/bound-subst4.stderr
@@ -0,0 +1,13 @@
+warning: method `h` is never used
+  --> $DIR/bound-subst4.rs:7:8
+   |
+LL | trait A<T> {
+   |       - method in this trait
+LL |     fn g(&self, x: usize) -> usize { x }
+LL |     fn h(&self, x: T) { }
+   |        ^
+   |
+   = note: `#[warn(dead_code)]` on by default
+
+warning: 1 warning emitted
+
diff --git a/tests/ui/traits/default-method/mut.rs b/tests/ui/traits/default-method/mut.rs
index 5f8e983b09c..3294b96561f 100644
--- a/tests/ui/traits/default-method/mut.rs
+++ b/tests/ui/traits/default-method/mut.rs
@@ -1,4 +1,4 @@
-// run-pass
+// check-pass
 #![allow(unused_assignments)]
 // pretty-expanded FIXME #23616
 
diff --git a/tests/ui/traits/impl-inherent-prefer-over-trait.rs b/tests/ui/traits/impl-inherent-prefer-over-trait.rs
index 82760788897..f03e730d091 100644
--- a/tests/ui/traits/impl-inherent-prefer-over-trait.rs
+++ b/tests/ui/traits/impl-inherent-prefer-over-trait.rs
@@ -3,7 +3,7 @@
 struct Foo;
 
 trait Trait {
-    fn bar(&self);
+    fn bar(&self); //~ WARN method `bar` is never used
 }
 
 // Inherent impls should be preferred over trait ones.
diff --git a/tests/ui/traits/impl-inherent-prefer-over-trait.stderr b/tests/ui/traits/impl-inherent-prefer-over-trait.stderr
new file mode 100644
index 00000000000..f0bb21402d8
--- /dev/null
+++ b/tests/ui/traits/impl-inherent-prefer-over-trait.stderr
@@ -0,0 +1,12 @@
+warning: method `bar` is never used
+  --> $DIR/impl-inherent-prefer-over-trait.rs:6:8
+   |
+LL | trait Trait {
+   |       ----- method in this trait
+LL |     fn bar(&self);
+   |        ^^^
+   |
+   = note: `#[warn(dead_code)]` on by default
+
+warning: 1 warning emitted
+
diff --git a/tests/ui/traits/impl-object-overlap-issue-23853.rs b/tests/ui/traits/impl-object-overlap-issue-23853.rs
index e490967b690..c0d3af11443 100644
--- a/tests/ui/traits/impl-object-overlap-issue-23853.rs
+++ b/tests/ui/traits/impl-object-overlap-issue-23853.rs
@@ -5,7 +5,7 @@
 // including `Bar`, but the object type `Bar` also implicitly supplies
 // this context.
 
-trait Foo { fn dummy(&self) { } }
+trait Foo { fn dummy(&self) { } } //~ WARN method `dummy` is never used
 
 trait Bar: Foo { }
 
diff --git a/tests/ui/traits/impl-object-overlap-issue-23853.stderr b/tests/ui/traits/impl-object-overlap-issue-23853.stderr
new file mode 100644
index 00000000000..9fa7a36816e
--- /dev/null
+++ b/tests/ui/traits/impl-object-overlap-issue-23853.stderr
@@ -0,0 +1,12 @@
+warning: method `dummy` is never used
+  --> $DIR/impl-object-overlap-issue-23853.rs:8:16
+   |
+LL | trait Foo { fn dummy(&self) { } }
+   |       ---      ^^^^^
+   |       |
+   |       method in this trait
+   |
+   = note: `#[warn(dead_code)]` on by default
+
+warning: 1 warning emitted
+
diff --git a/tests/ui/traits/impl.rs b/tests/ui/traits/impl.rs
index f512d91ebeb..7bec1b6c9ff 100644
--- a/tests/ui/traits/impl.rs
+++ b/tests/ui/traits/impl.rs
@@ -9,7 +9,7 @@ use traitimpl::Bar;
 static mut COUNT: usize = 1;
 
 trait T {
-    fn t(&self) {}
+    fn t(&self) {} //~ WARN method `t` is never used
 }
 
 impl<'a> dyn T+'a {
diff --git a/tests/ui/traits/impl.stderr b/tests/ui/traits/impl.stderr
new file mode 100644
index 00000000000..98b6fb03d83
--- /dev/null
+++ b/tests/ui/traits/impl.stderr
@@ -0,0 +1,12 @@
+warning: method `t` is never used
+  --> $DIR/impl.rs:12:8
+   |
+LL | trait T {
+   |       - method in this trait
+LL |     fn t(&self) {}
+   |        ^
+   |
+   = note: `#[warn(dead_code)]` on by default
+
+warning: 1 warning emitted
+
diff --git a/tests/ui/traits/issue-38033.rs b/tests/ui/traits/issue-38033.rs
index 16b867ec88f..4d76df1e8d5 100644
--- a/tests/ui/traits/issue-38033.rs
+++ b/tests/ui/traits/issue-38033.rs
@@ -19,7 +19,7 @@ trait IntoFuture {
     type Item;
     type Error;
 
-    fn into_future(self) -> Self::Future;
+    fn into_future(self) -> Self::Future; //~ WARN method `into_future` is never used
 }
 
 impl<F: Future> IntoFuture for F {
diff --git a/tests/ui/traits/issue-38033.stderr b/tests/ui/traits/issue-38033.stderr
new file mode 100644
index 00000000000..05385e8cf4d
--- /dev/null
+++ b/tests/ui/traits/issue-38033.stderr
@@ -0,0 +1,13 @@
+warning: method `into_future` is never used
+  --> $DIR/issue-38033.rs:22:8
+   |
+LL | trait IntoFuture {
+   |       ---------- method in this trait
+...
+LL |     fn into_future(self) -> Self::Future;
+   |        ^^^^^^^^^^^
+   |
+   = note: `#[warn(dead_code)]` on by default
+
+warning: 1 warning emitted
+
diff --git a/tests/ui/traits/issue-56488.rs b/tests/ui/traits/issue-56488.rs
index e2f3996927b..8b68f314c04 100644
--- a/tests/ui/traits/issue-56488.rs
+++ b/tests/ui/traits/issue-56488.rs
@@ -1,4 +1,4 @@
-// run-pass
+// check-pass
 
 #![feature(trait_alias)]
 
diff --git a/tests/ui/traits/issue-59029-2.rs b/tests/ui/traits/issue-59029-2.rs
index 2bdb128d8c4..fca9f1f13c9 100644
--- a/tests/ui/traits/issue-59029-2.rs
+++ b/tests/ui/traits/issue-59029-2.rs
@@ -1,4 +1,4 @@
-// run-pass
+// check-pass
 #![feature(trait_alias)]
 
 trait Svc<Req> { type Res; }
diff --git a/tests/ui/traits/issue-6128.rs b/tests/ui/traits/issue-6128.rs
index 07d92f8f8a0..f5fa0de809a 100644
--- a/tests/ui/traits/issue-6128.rs
+++ b/tests/ui/traits/issue-6128.rs
@@ -3,7 +3,7 @@
 use std::collections::HashMap;
 
 trait Graph<Node, Edge> {
-    fn f(&self, _: Edge);
+    fn f(&self, _: Edge); //~ WARN methods `f` and `g` are never used
     fn g(&self, _: Node);
 }
 
diff --git a/tests/ui/traits/issue-6128.stderr b/tests/ui/traits/issue-6128.stderr
new file mode 100644
index 00000000000..c9518ea41ea
--- /dev/null
+++ b/tests/ui/traits/issue-6128.stderr
@@ -0,0 +1,14 @@
+warning: methods `f` and `g` are never used
+  --> $DIR/issue-6128.rs:6:8
+   |
+LL | trait Graph<Node, Edge> {
+   |       ----- methods in this trait
+LL |     fn f(&self, _: Edge);
+   |        ^
+LL |     fn g(&self, _: Node);
+   |        ^
+   |
+   = note: `#[warn(dead_code)]` on by default
+
+warning: 1 warning emitted
+
diff --git a/tests/ui/traits/multidispatch-conditional-impl-not-considered.rs b/tests/ui/traits/multidispatch-conditional-impl-not-considered.rs
index f845e198aa5..e9ae8ab012a 100644
--- a/tests/ui/traits/multidispatch-conditional-impl-not-considered.rs
+++ b/tests/ui/traits/multidispatch-conditional-impl-not-considered.rs
@@ -6,7 +6,7 @@
 
 use std::cell::RefCell;
 
-trait Foo {
+trait Foo { //~ WARN trait `Foo` is never used
     fn foo(&self) {}
 }
 
diff --git a/tests/ui/traits/multidispatch-conditional-impl-not-considered.stderr b/tests/ui/traits/multidispatch-conditional-impl-not-considered.stderr
new file mode 100644
index 00000000000..25313a477f7
--- /dev/null
+++ b/tests/ui/traits/multidispatch-conditional-impl-not-considered.stderr
@@ -0,0 +1,10 @@
+warning: trait `Foo` is never used
+  --> $DIR/multidispatch-conditional-impl-not-considered.rs:9:7
+   |
+LL | trait Foo {
+   |       ^^^
+   |
+   = note: `#[warn(dead_code)]` on by default
+
+warning: 1 warning emitted
+
diff --git a/tests/ui/traits/multidispatch-infer-convert-target.rs b/tests/ui/traits/multidispatch-infer-convert-target.rs
index 626e1ae71bc..a3653dea2cb 100644
--- a/tests/ui/traits/multidispatch-infer-convert-target.rs
+++ b/tests/ui/traits/multidispatch-infer-convert-target.rs
@@ -5,7 +5,7 @@
 use std::mem;
 
 trait Convert<Target> {
-    fn convert(&self) -> Target;
+    fn convert(&self) -> Target; //~ WARN method `convert` is never used
 }
 
 impl Convert<u32> for i16 {
diff --git a/tests/ui/traits/multidispatch-infer-convert-target.stderr b/tests/ui/traits/multidispatch-infer-convert-target.stderr
new file mode 100644
index 00000000000..c8c1b642719
--- /dev/null
+++ b/tests/ui/traits/multidispatch-infer-convert-target.stderr
@@ -0,0 +1,12 @@
+warning: method `convert` is never used
+  --> $DIR/multidispatch-infer-convert-target.rs:8:8
+   |
+LL | trait Convert<Target> {
+   |       ------- method in this trait
+LL |     fn convert(&self) -> Target;
+   |        ^^^^^^^
+   |
+   = note: `#[warn(dead_code)]` on by default
+
+warning: 1 warning emitted
+
diff --git a/tests/ui/traits/negative-impls/negative-specializes-negative.rs b/tests/ui/traits/negative-impls/negative-specializes-negative.rs
index 35297ab124e..01829e41301 100644
--- a/tests/ui/traits/negative-impls/negative-specializes-negative.rs
+++ b/tests/ui/traits/negative-impls/negative-specializes-negative.rs
@@ -3,7 +3,7 @@
 
 // Test a negative impl that "specializes" another negative impl.
 //
-// run-pass
+// check-pass
 
 trait MyTrait {}
 
diff --git a/tests/ui/traits/trait-upcasting/lifetime.rs b/tests/ui/traits/trait-upcasting/lifetime.rs
index 9825158c2dd..6486ec3891c 100644
--- a/tests/ui/traits/trait-upcasting/lifetime.rs
+++ b/tests/ui/traits/trait-upcasting/lifetime.rs
@@ -7,7 +7,7 @@ trait Foo: PartialEq<i32> + std::fmt::Debug + Send + Sync {
         10
     }
 
-    fn z(&self) -> i32 {
+    fn z(&self) -> i32 { //~ WARN methods `z` and `y` are never used
         11
     }
 
@@ -21,7 +21,7 @@ trait Bar: Foo {
         20
     }
 
-    fn w(&self) -> i32 {
+    fn w(&self) -> i32 { //~ WARN method `w` is never used
         21
     }
 }
diff --git a/tests/ui/traits/trait-upcasting/lifetime.stderr b/tests/ui/traits/trait-upcasting/lifetime.stderr
new file mode 100644
index 00000000000..ca8f9cf63f3
--- /dev/null
+++ b/tests/ui/traits/trait-upcasting/lifetime.stderr
@@ -0,0 +1,25 @@
+warning: methods `z` and `y` are never used
+  --> $DIR/lifetime.rs:10:8
+   |
+LL | trait Foo: PartialEq<i32> + std::fmt::Debug + Send + Sync {
+   |       --- methods in this trait
+...
+LL |     fn z(&self) -> i32 {
+   |        ^
+...
+LL |     fn y(&self) -> i32 {
+   |        ^
+   |
+   = note: `#[warn(dead_code)]` on by default
+
+warning: method `w` is never used
+  --> $DIR/lifetime.rs:24:8
+   |
+LL | trait Bar: Foo {
+   |       --- method in this trait
+...
+LL |     fn w(&self) -> i32 {
+   |        ^
+
+warning: 2 warnings emitted
+
diff --git a/tests/ui/traits/trait-upcasting/replace-vptr.rs b/tests/ui/traits/trait-upcasting/replace-vptr.rs
index 9ccfc9306ac..5ef65786bb7 100644
--- a/tests/ui/traits/trait-upcasting/replace-vptr.rs
+++ b/tests/ui/traits/trait-upcasting/replace-vptr.rs
@@ -3,7 +3,7 @@
 #![feature(trait_upcasting)]
 
 trait A {
-    fn foo_a(&self);
+    fn foo_a(&self); //~ WARN method `foo_a` is never used
 }
 
 trait B {
@@ -11,7 +11,7 @@ trait B {
 }
 
 trait C: A + B {
-    fn foo_c(&self);
+    fn foo_c(&self); //~ WARN method `foo_c` is never used
 }
 
 struct S(i32);
diff --git a/tests/ui/traits/trait-upcasting/replace-vptr.stderr b/tests/ui/traits/trait-upcasting/replace-vptr.stderr
new file mode 100644
index 00000000000..823094761b3
--- /dev/null
+++ b/tests/ui/traits/trait-upcasting/replace-vptr.stderr
@@ -0,0 +1,20 @@
+warning: method `foo_a` is never used
+  --> $DIR/replace-vptr.rs:6:8
+   |
+LL | trait A {
+   |       - method in this trait
+LL |     fn foo_a(&self);
+   |        ^^^^^
+   |
+   = note: `#[warn(dead_code)]` on by default
+
+warning: method `foo_c` is never used
+  --> $DIR/replace-vptr.rs:14:8
+   |
+LL | trait C: A + B {
+   |       - method in this trait
+LL |     fn foo_c(&self);
+   |        ^^^^^
+
+warning: 2 warnings emitted
+
diff --git a/tests/ui/traits/use-before-def.rs b/tests/ui/traits/use-before-def.rs
index 1ee2b941909..e52dc53fbab 100644
--- a/tests/ui/traits/use-before-def.rs
+++ b/tests/ui/traits/use-before-def.rs
@@ -1,4 +1,4 @@
-// run-pass
+// check-pass
 #![allow(non_camel_case_types)]
 
 // Issue #1761
diff --git a/tests/ui/traits/wf-object/reverse-order.rs b/tests/ui/traits/wf-object/reverse-order.rs
index 74b2ef48533..e90c8763d65 100644
--- a/tests/ui/traits/wf-object/reverse-order.rs
+++ b/tests/ui/traits/wf-object/reverse-order.rs
@@ -1,4 +1,4 @@
-// run-pass
+// check-pass
 
 // Ensure that `dyn $($AutoTrait)+ ObjSafe` is well-formed.