Skip to content

Commit

Permalink
Add test for issue-74816
Browse files Browse the repository at this point in the history
  • Loading branch information
JohnTitor committed Oct 17, 2020
1 parent c266c07 commit fc3a5dc
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/test/ui/generic-associated-types/issue-74816.rs
@@ -0,0 +1,23 @@
#![feature(associated_type_defaults)]
#![feature(generic_associated_types)]
#![allow(incomplete_features)]

trait Trait1 {
fn foo();
}

trait Trait2 {
type Associated: Trait1 = Self;
//~^ ERROR: the trait bound `Self: Trait1` is not satisfied
//~| the size for values of type `Self` cannot be known
}

impl Trait2 for () {}

fn call_foo<T: Trait2>() {
T::Associated::foo()
}

fn main() {
call_foo::<()>()
}
31 changes: 31 additions & 0 deletions src/test/ui/generic-associated-types/issue-74816.stderr
@@ -0,0 +1,31 @@
error[E0277]: the trait bound `Self: Trait1` is not satisfied
--> $DIR/issue-74816.rs:10:5
|
LL | type Associated: Trait1 = Self;
| ^^^^^^^^^^^^^^^^^------^^^^^^^^
| | |
| | required by this bound in `Trait2::Associated`
| the trait `Trait1` is not implemented for `Self`
|
help: consider further restricting `Self`
|
LL | trait Trait2: Trait1 {
| ^^^^^^^^

error[E0277]: the size for values of type `Self` cannot be known at compilation time
--> $DIR/issue-74816.rs:10:5
|
LL | type Associated: Trait1 = Self;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
| doesn't have a size known at compile-time
| required by this bound in `Trait2::Associated`
|
help: consider further restricting `Self`
|
LL | trait Trait2: Sized {
| ^^^^^^^

error: aborting due to 2 previous errors

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

0 comments on commit fc3a5dc

Please sign in to comment.