From 2368aa8e97e9f3d3df1a75dc798e0e3f4cced7da Mon Sep 17 00:00:00 2001 From: Yuki OKUSHI Date: Wed, 27 Mar 2019 19:30:33 +0900 Subject: [PATCH] Add some tests --- .../existential-types-with-cycle-error.rs | 12 ++++++++ .../existential-types-with-cycle-error.stderr | 30 +++++++++++++++++++ .../existential-types-with-cycle-error2.rs | 16 ++++++++++ ...existential-types-with-cycle-error2.stderr | 30 +++++++++++++++++++ 4 files changed, 88 insertions(+) create mode 100644 src/test/ui/existential_types/existential-types-with-cycle-error.rs create mode 100644 src/test/ui/existential_types/existential-types-with-cycle-error.stderr create mode 100644 src/test/ui/existential_types/existential-types-with-cycle-error2.rs create mode 100644 src/test/ui/existential_types/existential-types-with-cycle-error2.stderr diff --git a/src/test/ui/existential_types/existential-types-with-cycle-error.rs b/src/test/ui/existential_types/existential-types-with-cycle-error.rs new file mode 100644 index 00000000000..3f0190892eb --- /dev/null +++ b/src/test/ui/existential_types/existential-types-with-cycle-error.rs @@ -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() { + +} diff --git a/src/test/ui/existential_types/existential-types-with-cycle-error.stderr b/src/test/ui/existential_types/existential-types-with-cycle-error.stderr new file mode 100644 index 00000000000..56057a9caa4 --- /dev/null +++ b/src/test/ui/existential_types/existential-types-with-cycle-error.stderr @@ -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`. diff --git a/src/test/ui/existential_types/existential-types-with-cycle-error2.rs b/src/test/ui/existential_types/existential-types-with-cycle-error2.rs new file mode 100644 index 00000000000..29410309ef2 --- /dev/null +++ b/src/test/ui/existential_types/existential-types-with-cycle-error2.rs @@ -0,0 +1,16 @@ +#![feature(existential_type)] + +pub trait Bar { + type Item; +} + +existential type Foo: Bar; +//~^ ERROR: cycle detected when processing `Foo` + +fn crash(x: Foo) -> Foo { + x +} + +fn main() { + +} diff --git a/src/test/ui/existential_types/existential-types-with-cycle-error2.stderr b/src/test/ui/existential_types/existential-types-with-cycle-error2.stderr new file mode 100644 index 00000000000..8c7bf52470a --- /dev/null +++ b/src/test/ui/existential_types/existential-types-with-cycle-error2.stderr @@ -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; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | +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 { +LL | | type Item; +... | +LL | | +LL | | } + | |_^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0391`. -- 2.44.0