// Issue 22443: Reject code using non-regular types that would // otherwise cause dropck to loop infinitely. use std::marker::PhantomData; struct Digit { elem: T } struct Node { m: PhantomData<&'static T> } enum FingerTree { Single(T), // Bug report said Digit after Box would stack overflow (versus // Digit before Box; see dropck_no_diverge_on_nonregular_2). Deep( Box>>, Digit, ) } fn main() { let ft = //~ ERROR overflow while adding drop-check rules for FingerTree FingerTree::Single(1); }