//@ run-pass | |
// Indexing taken from | |
// https://github.com/phi-go/rfcs/blob/guaranteed-tco/text%2F0000-explicit-tail-calls.md#tail-call-elimination | |
// no other test has utilized the "function table" | |
// described in the RFC aside from this one at this point. | |
#![expect(incomplete_features)] | |
#![feature(explicit_tail_calls)] | |
fn f0(_: usize) {} | |
fn f1(_: usize) {} | |
fn f2(_: usize) {} | |
fn indexer(idx: usize) { | |
let v: [fn(usize); 3] = [f0, f1, f2]; | |
become v[idx](idx) | |
} | |
fn main() { | |
for idx in 0..3 { | |
indexer(idx); | |
} | |
} |