diff options
| author | Joshua Nelson <jyn514@gmail.com> | 2020-07-11 00:28:42 -0400 |
|---|---|---|
| committer | Joshua Nelson <jyn514@gmail.com> | 2020-07-15 10:54:05 -0400 |
| commit | 02a24c8e2fd370041a24b7d93e8c3710b7b76015 (patch) | |
| tree | 826bbca890b868214a69ff7ec56cd6745bfd813d /src/test/rustdoc-ui | |
| parent | 2d0e8e2162a2e2be233a63ba5a8cbf3e19770b17 (diff) | |
| download | rust-02a24c8e2fd370041a24b7d93e8c3710b7b76015.tar.gz rust-02a24c8e2fd370041a24b7d93e8c3710b7b76015.zip | |
Don't ICE on infinitely recursive types
`evaluate_obligation` can only be run on types that are already valid. So rustdoc still has to run typeck even though it doesn't care about the result.
Diffstat (limited to 'src/test/rustdoc-ui')
| -rw-r--r-- | src/test/rustdoc-ui/infinite-recursive-type.rs | 4 | ||||
| -rw-r--r-- | src/test/rustdoc-ui/infinite-recursive-type.stderr | 17 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/test/rustdoc-ui/infinite-recursive-type.rs b/src/test/rustdoc-ui/infinite-recursive-type.rs new file mode 100644 index 00000000000..32793fc4f76 --- /dev/null +++ b/src/test/rustdoc-ui/infinite-recursive-type.rs @@ -0,0 +1,4 @@ +enum E { +//~^ ERROR recursive type `E` has infinite size + V(E), +} diff --git a/src/test/rustdoc-ui/infinite-recursive-type.stderr b/src/test/rustdoc-ui/infinite-recursive-type.stderr new file mode 100644 index 00000000000..897445f200c --- /dev/null +++ b/src/test/rustdoc-ui/infinite-recursive-type.stderr @@ -0,0 +1,17 @@ +error[E0072]: recursive type `E` has infinite size + --> $DIR/infinite-recursive-type.rs:1:1 + | +LL | enum E { + | ^^^^^^ recursive type has infinite size +LL | +LL | V(E), + | - recursive without indirection + | +help: insert some indirection (e.g., a `Box`, `Rc`, or `&`) to make `E` representable + | +LL | V(Box<E>), + | ^^^^ ^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0072`. |
