Add test of recursive trait aliases

This commit is contained in:
Noah Lev 2021-08-21 13:14:13 -07:00
parent cd0fc444fb
commit bf360dc272
2 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,10 @@
#![feature(trait_alias)]
trait T1 = T2;
//~^ ERROR cycle detected when computing the super predicates of `T1`
trait T2 = T3;
trait T3 = T1 + T3;
fn main() {}

View File

@ -0,0 +1,41 @@
error[E0391]: cycle detected when computing the super predicates of `T1`
--> $DIR/infinite-trait-alias-recursion.rs:3:1
|
LL | trait T1 = T2;
| ^^^^^^^^^^^^^^
|
note: ...which requires computing the super traits of `T1`...
--> $DIR/infinite-trait-alias-recursion.rs:3:12
|
LL | trait T1 = T2;
| ^^
note: ...which requires computing the super predicates of `T2`...
--> $DIR/infinite-trait-alias-recursion.rs:6:1
|
LL | trait T2 = T3;
| ^^^^^^^^^^^^^^
note: ...which requires computing the super traits of `T2`...
--> $DIR/infinite-trait-alias-recursion.rs:6:12
|
LL | trait T2 = T3;
| ^^
note: ...which requires computing the super predicates of `T3`...
--> $DIR/infinite-trait-alias-recursion.rs:8:1
|
LL | trait T3 = T1 + T3;
| ^^^^^^^^^^^^^^^^^^^
note: ...which requires computing the super traits of `T3`...
--> $DIR/infinite-trait-alias-recursion.rs:8:12
|
LL | trait T3 = T1 + T3;
| ^^
= note: ...which again requires computing the super predicates of `T1`, completing the cycle
note: cycle used when collecting item types in top-level module
--> $DIR/infinite-trait-alias-recursion.rs:3:1
|
LL | trait T1 = T2;
| ^^^^^^^^^^^^^^
error: aborting due to previous error
For more information about this error, try `rustc --explain E0391`.