fn test_comptime_generic() { a := [5]int{} func1(&a) } @[inline] pub fn func1[T](t &T) { func2[T](t) } @[inline] pub fn func2[T](t &T) { $if T is $array { unsafe { for i in 0 .. t.len { func2(&t[i]) } } } $else $if T is $map { // fake_map(t, df) } $else $if T is $struct { $for f in T.fields { $if f.typ is string { } // Dummy expression to generate and specify t.$(f.name)'s type // mut attrs := get_attrs(t.$(f.name), f) // if !attrs.skip() { // fake_data_wdf(&(t.$(f.name))) // } } } $else { unsafe { // *t = fake_primitive_value(df) or { panic(err) } } } }