about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2020-02-19 15:57:21 -0800
committerEsteban Küber <esteban@kuber.com.ar>2020-02-28 11:37:59 -0800
commit01286408c1d4ac9d862801ac102ce4de44fc095b (patch)
treea8bda7752acd9a00d3df68817a214c8066def7b5 /src/test
parent392d853589721ffef1f32181d6c3959f0284e4fb (diff)
downloadrust-01286408c1d4ac9d862801ac102ce4de44fc095b.tar.gz
rust-01286408c1d4ac9d862801ac102ce4de44fc095b.zip
Account for arbitrary self types in E0599
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/issues/issue-5153.stderr6
-rw-r--r--src/test/ui/object-pointer-types.stderr12
-rw-r--r--src/test/ui/self/point-at-arbitrary-self-type-trait-method.stderr8
3 files changed, 9 insertions, 17 deletions
diff --git a/src/test/ui/issues/issue-5153.stderr b/src/test/ui/issues/issue-5153.stderr
index 44ef73550f8..93aaf4b9d82 100644
--- a/src/test/ui/issues/issue-5153.stderr
+++ b/src/test/ui/issues/issue-5153.stderr
@@ -1,13 +1,11 @@
 error[E0599]: no method named `foo` found for reference `&dyn Foo` in the current scope
   --> $DIR/issue-5153.rs:10:27
    |
-LL | trait Foo {
-   | --------- `Foo` defines an item `foo`, perhaps you need to implement it
+LL |     fn foo(self: Box<Self>);
+   |                  --------- the method might not be found because of this arbitrary self type
 ...
 LL |     (&5isize as &dyn Foo).foo();
    |                           ^^^ method not found in `&dyn Foo`
-   |
-   = help: items from traits can only be used if the trait is implemented and in scope
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/object-pointer-types.stderr b/src/test/ui/object-pointer-types.stderr
index 07b7da94097..021aa8670f7 100644
--- a/src/test/ui/object-pointer-types.stderr
+++ b/src/test/ui/object-pointer-types.stderr
@@ -1,24 +1,20 @@
 error[E0599]: no method named `owned` found for reference `&dyn Foo` in the current scope
   --> $DIR/object-pointer-types.rs:11:7
    |
-LL | trait Foo {
-   | --------- `Foo` defines an item `owned`, perhaps you need to implement it
+LL |     fn owned(self: Box<Self>);
+   |                    --------- the method might not be found because of this arbitrary self type
 ...
 LL |     x.owned();
    |       ^^^^^ method not found in `&dyn Foo`
-   |
-   = help: items from traits can only be used if the trait is implemented and in scope
 
 error[E0599]: no method named `owned` found for mutable reference `&mut dyn Foo` in the current scope
   --> $DIR/object-pointer-types.rs:17:7
    |
-LL | trait Foo {
-   | --------- `Foo` defines an item `owned`, perhaps you need to implement it
+LL |     fn owned(self: Box<Self>);
+   |                    --------- the method might not be found because of this arbitrary self type
 ...
 LL |     x.owned();
    |       ^^^^^ method not found in `&mut dyn Foo`
-   |
-   = help: items from traits can only be used if the trait is implemented and in scope
 
 error[E0599]: no method named `managed` found for struct `std::boxed::Box<(dyn Foo + 'static)>` in the current scope
   --> $DIR/object-pointer-types.rs:23:7
diff --git a/src/test/ui/self/point-at-arbitrary-self-type-trait-method.stderr b/src/test/ui/self/point-at-arbitrary-self-type-trait-method.stderr
index 999bbcca6bc..37873031da3 100644
--- a/src/test/ui/self/point-at-arbitrary-self-type-trait-method.stderr
+++ b/src/test/ui/self/point-at-arbitrary-self-type-trait-method.stderr
@@ -2,16 +2,14 @@ error[E0599]: no method named `foo` found for struct `A` in the current scope
   --> $DIR/point-at-arbitrary-self-type-trait-method.rs:9:7
    |
 LL | trait B { fn foo(self: Box<Self>); }
-   | -------      --- the method is available for `std::boxed::Box<A>` here
-   | |
-   | `B` defines an item `foo`, perhaps you need to implement it
+   |              ---       --------- the method might not be found because of this arbitrary self type
+   |              |
+   |              the method is available for `std::boxed::Box<A>` here
 LL | struct A;
    | --------- method `foo` not found for this
 ...
 LL |     A.foo()
    |       ^^^ method not found in `A`
-   |
-   = help: items from traits can only be used if the trait is implemented and in scope
 
 error: aborting due to previous error