diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2020-05-28 18:20:37 -0700 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2020-06-01 09:44:05 -0700 |
| commit | eb8d9002fa3802ebb78d6854ddec207cbaf6aa18 (patch) | |
| tree | 8252d6d45eaa6493490287bfa7284dc67a496133 | |
| parent | d3cba254e464303a6495942f3a831c2bbd7f1768 (diff) | |
| download | rust-eb8d9002fa3802ebb78d6854ddec207cbaf6aa18.tar.gz rust-eb8d9002fa3802ebb78d6854ddec207cbaf6aa18.zip | |
Add test for #72554.
| -rw-r--r-- | src/test/ui/issues/issue-72554.rs | 20 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-72554.stderr | 13 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-72554.rs b/src/test/ui/issues/issue-72554.rs new file mode 100644 index 00000000000..47aca05d778 --- /dev/null +++ b/src/test/ui/issues/issue-72554.rs @@ -0,0 +1,20 @@ +use std::collections::BTreeSet; + +#[derive(Hash)] +pub enum ElemDerived { //~ ERROR recursive type `ElemDerived` has infinite size + A(ElemDerived) +} + +pub enum Elem { + Derived(ElemDerived) +} + +pub struct Set(BTreeSet<Elem>); + +impl Set { + pub fn into_iter(self) -> impl Iterator<Item = Elem> { + self.0.into_iter() + } +} + +fn main() {} diff --git a/src/test/ui/issues/issue-72554.stderr b/src/test/ui/issues/issue-72554.stderr new file mode 100644 index 00000000000..9db65f4a2ee --- /dev/null +++ b/src/test/ui/issues/issue-72554.stderr @@ -0,0 +1,13 @@ +error[E0072]: recursive type `ElemDerived` has infinite size + --> $DIR/issue-72554.rs:4:1 + | +LL | pub enum ElemDerived { + | ^^^^^^^^^^^^^^^^^^^^ recursive type has infinite size +LL | A(ElemDerived) + | ----------- recursive without indirection + | + = help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `ElemDerived` representable + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0072`. |
