rust/tests/ui/traits/next-solver/coercion/coerce-depth.rs

32 lines
664 B
Rust

//@ check-pass
//@ compile-flags: -Znext-solver
// Ensure that a stack of coerce predicates doesn't end up overflowing when they get procesed
// in *reverse* order, which may require O(N) iterations of the fulfillment loop.
#![recursion_limit = "16"]
fn main() {
match 0 {
0 => None,
1 => None,
2 => None,
3 => None,
4 => None,
5 => None,
6 => None,
7 => None,
8 => None,
9 => None,
10 => None,
11 => None,
12 => None,
13 => None,
14 => None,
15 => None,
16 => None,
17 => None,
_ => Some(1u32),
};
}