| //! 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(); | |
| } |