]> git.proxmox.com Git - rustc.git/blame - src/test/ui/traits/trait-object-safety.stderr
New upstream version 1.51.0+dfsg1
[rustc.git] / src / test / ui / traits / trait-object-safety.stderr
CommitLineData
b7449926 1error[E0038]: the trait `Tr` cannot be made into an object
dc9dc135 2 --> $DIR/trait-object-safety.rs:15:22
b7449926 3 |
29967ef6
XL
4LL | let _: &dyn Tr = &St;
5 | ^^^ `Tr` cannot be made into an object
6 |
7note: 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>
8 --> $DIR/trait-object-safety.rs:4:8
9 |
74b04a01
XL
10LL | trait Tr {
11 | -- this trait cannot be made into an object...
e1599b0c 12LL | fn foo();
29967ef6 13 | ^^^ ...because associated function `foo` has no `self` parameter
1b1a35ee 14 = note: required because of the requirements on the impl of `CoerceUnsized<&dyn Tr>` for `&St`
e74abb32 15 = note: required by cast to type `&dyn Tr`
29967ef6
XL
16help: consider turning `foo` into a method by giving it a `&self` argument
17 |
18LL | fn foo(&self);
19 | ^^^^^
20help: alternatively, consider constraining `foo` so it does not apply to trait objects
74b04a01
XL
21 |
22LL | fn foo() where Self: Sized;
23 | ^^^^^^^^^^^^^^^^^
b7449926
XL
24
25error[E0038]: the trait `Tr` cannot be made into an object
0731742a 26 --> $DIR/trait-object-safety.rs:15:12
b7449926 27 |
29967ef6
XL
28LL | let _: &dyn Tr = &St;
29 | ^^^^^^^ `Tr` cannot be made into an object
30 |
31note: 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>
32 --> $DIR/trait-object-safety.rs:4:8
33 |
74b04a01
XL
34LL | trait Tr {
35 | -- this trait cannot be made into an object...
e1599b0c 36LL | fn foo();
29967ef6
XL
37 | ^^^ ...because associated function `foo` has no `self` parameter
38help: consider turning `foo` into a method by giving it a `&self` argument
74b04a01 39 |
29967ef6
XL
40LL | fn foo(&self);
41 | ^^^^^
42help: alternatively, consider constraining `foo` so it does not apply to trait objects
74b04a01
XL
43 |
44LL | fn foo() where Self: Sized;
45 | ^^^^^^^^^^^^^^^^^
b7449926
XL
46
47error: aborting due to 2 previous errors
48
49For more information about this error, try `rustc --explain E0038`.