//! This test tests two things at once: //! 1. we error if a const evaluation hits the deny-by-default lint limit //! 2. we do not ICE on invalid follow-up code //! 3. no ICE when run with `-Z unstable-options` (issue 122177) //@revisions: eval_limit no_ice //@[no_ice] compile-flags: -Z tiny-const-eval-limit -Z unstable-options //@[eval_limit] compile-flags: -Z tiny-const-eval-limit fn main() { // Tests the Collatz conjecture with an incorrect base case (0 instead of 1). // The value of `n` will loop indefinitely (4 - 2 - 1 - 4). let s = [(); { let mut n = 113383; // #20 in https://oeis.org/A006884 while n != 0 { //~^ ERROR is taking a long time n = if n % 2 == 0 { n / 2 } else { 3 * n + 1 }; } n }]; s.nonexistent_method(); }