Add some tests
This commit is contained in:
parent
33b3b136c5
commit
2368aa8e97
@ -0,0 +1,12 @@
|
||||
#![feature(existential_type)]
|
||||
|
||||
existential type Foo: Fn() -> Foo;
|
||||
//~^ ERROR: cycle detected when processing `Foo`
|
||||
|
||||
fn crash(x: Foo) -> Foo {
|
||||
x
|
||||
}
|
||||
|
||||
fn main() {
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
error[E0391]: cycle detected when processing `Foo`
|
||||
--> $DIR/existential-types-with-cycle-error.rs:3:1
|
||||
|
|
||||
LL | existential type Foo: Fn() -> Foo;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
note: ...which requires processing `crash`...
|
||||
--> $DIR/existential-types-with-cycle-error.rs:6:25
|
||||
|
|
||||
LL | fn crash(x: Foo) -> Foo {
|
||||
| _________________________^
|
||||
LL | | x
|
||||
LL | | }
|
||||
| |_^
|
||||
= note: ...which again requires processing `Foo`, completing the cycle
|
||||
note: cycle used when collecting item types in top-level module
|
||||
--> $DIR/existential-types-with-cycle-error.rs:1:1
|
||||
|
|
||||
LL | / #![feature(existential_type)]
|
||||
LL | |
|
||||
LL | | existential type Foo: Fn() -> Foo;
|
||||
LL | |
|
||||
... |
|
||||
LL | |
|
||||
LL | | }
|
||||
| |_^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0391`.
|
@ -0,0 +1,16 @@
|
||||
#![feature(existential_type)]
|
||||
|
||||
pub trait Bar<T> {
|
||||
type Item;
|
||||
}
|
||||
|
||||
existential type Foo: Bar<Foo, Item = Foo>;
|
||||
//~^ ERROR: cycle detected when processing `Foo`
|
||||
|
||||
fn crash(x: Foo) -> Foo {
|
||||
x
|
||||
}
|
||||
|
||||
fn main() {
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
error[E0391]: cycle detected when processing `Foo`
|
||||
--> $DIR/existential-types-with-cycle-error2.rs:7:1
|
||||
|
|
||||
LL | existential type Foo: Bar<Foo, Item = Foo>;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
note: ...which requires processing `crash`...
|
||||
--> $DIR/existential-types-with-cycle-error2.rs:10:25
|
||||
|
|
||||
LL | fn crash(x: Foo) -> Foo {
|
||||
| _________________________^
|
||||
LL | | x
|
||||
LL | | }
|
||||
| |_^
|
||||
= note: ...which again requires processing `Foo`, completing the cycle
|
||||
note: cycle used when collecting item types in top-level module
|
||||
--> $DIR/existential-types-with-cycle-error2.rs:1:1
|
||||
|
|
||||
LL | / #![feature(existential_type)]
|
||||
LL | |
|
||||
LL | | pub trait Bar<T> {
|
||||
LL | | type Item;
|
||||
... |
|
||||
LL | |
|
||||
LL | | }
|
||||
| |_^
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0391`.
|
Loading…
x
Reference in New Issue
Block a user