#![allow(incomplete_features, dead_code)] #![deny(unconditional_recursion)] //~ note: the lint level is defined here #![feature(explicit_tail_calls)] fn f(x: bool) { //~^ error: function cannot return without recursing //~| note: cannot return without recursing if x { become f(!x) } else { f(!x) //~ note: recursive call site } } // This should *not* lint, tail-recursive functions which never return is a reasonable thing fn g(x: bool) { if x { become g(!x) } else { become g(!x) } } fn main() {}