From a306e12874e3d9da225e41a904d27dd53629ca54 Mon Sep 17 00:00:00 2001 From: Joshua Nelson Date: Sat, 8 Aug 2020 10:19:56 -0400 Subject: [PATCH] Add another test --- ...infinite-recursive-type-impl-trait-return.rs | 15 +++++++++++++++ ...nite-recursive-type-impl-trait-return.stderr | 17 +++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/test/rustdoc-ui/infinite-recursive-type-impl-trait-return.rs create mode 100644 src/test/rustdoc-ui/infinite-recursive-type-impl-trait-return.stderr diff --git a/src/test/rustdoc-ui/infinite-recursive-type-impl-trait-return.rs b/src/test/rustdoc-ui/infinite-recursive-type-impl-trait-return.rs new file mode 100644 index 00000000000..acce0f77a25 --- /dev/null +++ b/src/test/rustdoc-ui/infinite-recursive-type-impl-trait-return.rs @@ -0,0 +1,15 @@ +// normalize-stderr-test: "`.*`" -> "`DEF_ID`" +// normalize-stdout-test: "`.*`" -> "`DEF_ID`" +// edition:2018 + +pub async fn f() -> impl std::fmt::Debug { + #[derive(Debug)] + enum E { + //~^ ERROR recursive type `f::{{closure}}#0::E` has infinite size + This(E), + Unit, + } + E::Unit +} + +fn main() {} diff --git a/src/test/rustdoc-ui/infinite-recursive-type-impl-trait-return.stderr b/src/test/rustdoc-ui/infinite-recursive-type-impl-trait-return.stderr new file mode 100644 index 00000000000..991dc6eec1d --- /dev/null +++ b/src/test/rustdoc-ui/infinite-recursive-type-impl-trait-return.stderr @@ -0,0 +1,17 @@ +error[E0072]: recursive type `DEF_ID` has infinite size + --> $DIR/infinite-recursive-type-impl-trait-return.rs:7:5 + | +LL | enum E { + | ^^^^^^ recursive type has infinite size +LL | +LL | This(E), + | - recursive without indirection + | +help: insert some indirection (e.g., a `DEF_ID` representable + | +LL | This(Box), + | ^^^^ ^ + +error: aborting due to previous error + +For more information about this error, try `DEF_ID`. -- 2.44.0