| 1 | pub type Any = []Any |
| 2 | | bool |
| 3 | | f32 |
| 4 | | f64 |
| 5 | | i16 |
| 6 | | i64 |
| 7 | | i8 |
| 8 | | int |
| 9 | | map[string]Any |
| 10 | | string |
| 11 | | u16 |
| 12 | | u32 |
| 13 | | u64 |
| 14 | | u8 |
| 15 | |
| 16 | fn test_main() { |
| 17 | ana := Any([Any('')]) |
| 18 | name(ana) |
| 19 | match ana { |
| 20 | []Any { |
| 21 | for i := 0; i < ana.len; i++ { |
| 22 | name(ana[i]) |
| 23 | } |
| 24 | } |
| 25 | else { |
| 26 | assert false |
| 27 | } |
| 28 | } |
| 29 | |
| 30 | assert true |
| 31 | } |
| 32 | |
| 33 | fn name[T](val T) { |
| 34 | $for v in val.variants { |
| 35 | if val is v { |
| 36 | dump(val.str()) |
| 37 | $if val is []Any { |
| 38 | assert val.str() == "[Any('')]" |
| 39 | } $else { |
| 40 | assert val.str() == '' |
| 41 | } |
| 42 | dump(val) |
| 43 | println(val) |
| 44 | } |
| 45 | } |
| 46 | } |
| 47 |