Add test of recursive trait aliases
This commit is contained in:
parent
cd0fc444fb
commit
bf360dc272
2 changed files with 51 additions and 0 deletions
10
src/test/ui/infinite/infinite-trait-alias-recursion.rs
Normal file
10
src/test/ui/infinite/infinite-trait-alias-recursion.rs
Normal 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() {}
|
41
src/test/ui/infinite/infinite-trait-alias-recursion.stderr
Normal file
41
src/test/ui/infinite/infinite-trait-alias-recursion.stderr
Normal 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`.
|
Loading…
Add table
Add a link
Reference in a new issue