3 // General test that function items in static blocks
4 // can be generated with a macro.
10 code: fn(usize, usize) -> usize
14 fn eval(&self, a: usize) -> usize {
15 (self.code)(self.data, a)
19 macro_rules! codegen {
20 ($e:expr, $v:expr) => {
22 fn generated(a: usize, b: usize) -> usize {
34 static GENERATED_CODE_1: MyType = codegen!(2, 100);
35 static GENERATED_CODE_2: MyType = codegen!(5, 1000);
38 assert_eq!(GENERATED_CODE_1.eval(10), 80);
39 assert_eq!(GENERATED_CODE_2.eval(100), 500);