// https://issues.dlang.org/show_bug.cgi?id=21120 module one.two.three; struct S {} struct StructTemplate(T) { int a = 123; // non-zero initialized ref const(StructTemplate) getInitSymbol() { return initSymbol!StructTemplate; } } template initSymbol(T) { pragma(mangle, "_D" ~ T.mangleof[1..$] ~ "6__initZ") extern immutable T initSymbol; } void main() { StructTemplate!S inst; assert(inst.getInitSymbol() == inst); }