Skip to content

Commit

Permalink
Add test
Browse files Browse the repository at this point in the history
  • Loading branch information
estebank committed Oct 30, 2023
1 parent 17a6ae2 commit 8c55772
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 0 deletions.
7 changes: 7 additions & 0 deletions tests/ui/traits/object/object-unsafe-missing-assoc-type.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
trait Foo {
type Bar<T>;
}

fn bar(x: &dyn Foo) {} //~ ERROR the trait `Foo` cannot be made into an object

fn main() {}
18 changes: 18 additions & 0 deletions tests/ui/traits/object/object-unsafe-missing-assoc-type.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
error[E0038]: the trait `Foo` cannot be made into an object
--> $DIR/object-unsafe-missing-assoc-type.rs:5:16
|
LL | fn bar(x: &dyn Foo) {}
| ^^^ `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-unsafe-missing-assoc-type.rs:2:10
|
LL | trait Foo {
| --- this trait cannot be made into an object...
LL | type Bar<T>;
| ^^^ ...because it contains the generic associated type `Bar`
= help: consider moving `Bar` to another trait

error: aborting due to previous error

For more information about this error, try `rustc --explain E0038`.

0 comments on commit 8c55772

Please sign in to comment.