about summary refs log tree commit diff
path: root/tests/ui/const-generics/generic_const_exprs/object-safety-err-ret.stderr
diff options
context:
space:
mode:
authorOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2024-02-09 12:17:55 +0000
committerOli Scherer <git-spam-no-reply9815368754983@oli-obk.de>2024-02-14 11:00:30 +0000
commit5f6390f947373528355d30a276ede65d92baaa57 (patch)
treecfccfb4047807d2dcf9aa0192ebae291d30f040e /tests/ui/const-generics/generic_const_exprs/object-safety-err-ret.stderr
parentbb89df6903539e7014b8db29bccd6a9ee9553122 (diff)
downloadrust-5f6390f947373528355d30a276ede65d92baaa57.tar.gz
rust-5f6390f947373528355d30a276ede65d92baaa57.zip
Continue compilation after check_mod_type_wf errors
Diffstat (limited to 'tests/ui/const-generics/generic_const_exprs/object-safety-err-ret.stderr')
-rw-r--r--tests/ui/const-generics/generic_const_exprs/object-safety-err-ret.stderr20
1 files changed, 19 insertions, 1 deletions
diff --git a/tests/ui/const-generics/generic_const_exprs/object-safety-err-ret.stderr b/tests/ui/const-generics/generic_const_exprs/object-safety-err-ret.stderr
index 6f0a6b04333..31f271cc7ba 100644
--- a/tests/ui/const-generics/generic_const_exprs/object-safety-err-ret.stderr
+++ b/tests/ui/const-generics/generic_const_exprs/object-safety-err-ret.stderr
@@ -16,6 +16,24 @@ LL |     fn test(&self) -> [u8; bar::<Self>()];
    = help: consider moving `test` to another trait
    = help: only type `()` implements the trait, consider using it directly instead
 
-error: aborting due to 1 previous error
+error[E0038]: the trait `Foo` cannot be made into an object
+  --> $DIR/object-safety-err-ret.rs:18:5
+   |
+LL |     v.test();
+   |     ^^^^^^^^ `Foo` cannot be made into an object
+   |
+note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
+  --> $DIR/object-safety-err-ret.rs:8:8
+   |
+LL | trait Foo {
+   |       --- this trait cannot be made into an object...
+LL |     fn test(&self) -> [u8; bar::<Self>()];
+   |        ^^^^           ^^^^^^^^^^^^^^^^^^^ ...because method `test` references the `Self` type in its return type
+   |        |
+   |        ...because method `test` references the `Self` type in its `where` clause
+   = help: consider moving `test` to another trait
+   = help: only type `()` implements the trait, consider using it directly instead
+
+error: aborting due to 2 previous errors
 
 For more information about this error, try `rustc --explain E0038`.