/* | |
PERMUTE_ARGS: | |
RUN_OUTPUT: | |
--- | |
count = 3 | |
--- | |
*/ | |
// https://issues.dlang.org/show_bug.cgi?id=2311 | |
extern(C) int printf(const char*, ...); | |
__gshared ulong count; | |
shared static ~this() | |
{ | |
printf("count = %llu\n", count); | |
assert(count == 3); | |
} | |
template X(uint idx) | |
{ | |
static ~this() | |
{ | |
assert(count == idx); | |
++count; | |
} | |
} | |
void main() | |
{ | |
// Instantiate module destructors in reverse order | |
alias x = X!(2); | |
alias y = X!(1); | |
alias z = X!(0); | |
} |