Recursion limit reached while creating drop-check rules. Example of erroneous code: ```compile_fail,E0320 enum A { B, C(T, Box>) } fn foo() { A::::B; // error: overflow while adding drop-check rules for A } ``` The Rust compiler must be able to reason about how a type is [`Drop`]ped, and by extension the types of its fields, to be able to generate the glue to properly drop a value. The code example above shows a type where this inference is impossible because it is recursive. Note that this is *not* the same as [E0072](E0072.html), where a type has an infinite size; the type here has a finite size but any attempt to `Drop` it would recurse infinitely. For more information, read [the `Drop` docs](../std/ops/trait.Drop.html). It is not possible to define a type with recursive drop-check rules. All such recursion must be removed. [`Drop`]: ../std/ops/trait.Drop.html