rust/tests/ui/dropck/dropck_no_diverge_on_nonregular_1.rs
Esteban Küber dceb3fc9fa Tweak E0320 overflow error wording
Surrount type with backticks as we should in every error.
2024-11-05 21:54:45 +00:00

27 lines
605 B
Rust

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