diff --git a/test/test_idgen.c3 b/test/test_idgen.c3 new file mode 100644 index 0000000..d4709d5 --- /dev/null +++ b/test/test_idgen.c3 @@ -0,0 +1,30 @@ +import std::io; + +alias Id = uint; + +fn void foo_ex(Id id) +{ + io::printfn("id = %d", id); +} + + +macro Id @compute_id(...) +{ + Id id = (Id)$$LINE.hash() ^ (Id)@str_hash($$FILE); + $for var $i = 0; $i < $vacount; $i++: + id ^= (Id)$vaconst[$i].hash(); + $endfor + return id; +} + +macro foo(...) => foo_ex(@compute_id($vasplat)); + +fn int main() +{ + foo_ex(1234); + foo(); + foo(); + foo(); + + return 0; +} \ No newline at end of file