//@ run-rustfix #![expect(incomplete_features)] #![feature(explicit_tail_calls)] fn a() { become (|| ())(); //~^ ERROR: tail calling closures directly is not allowed } fn aa((): ()) { become (|()| ())(()); //~^ ERROR: tail calling closures directly is not allowed } fn aaa((): (), _: i32) { become (|(), _| ())((), 1); //~^ ERROR: tail calling closures directly is not allowed } fn v((): (), ((), ()): ((), ())) -> (((), ()), ()) { let f = |(), ((), ())| (((), ()), ()); become f((), ((), ())); //~^ ERROR: tail calling closures directly is not allowed } fn main() { a(); aa(()); aaa((), 1); v((), ((), ())); }