mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 23:12:02 +00:00
Add test of recursive trait aliases
This commit is contained in:
parent
cd0fc444fb
commit
bf360dc272
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…
Reference in New Issue
Block a user