https://issues.dlang.org/show_bug.cgi?id=14272
Ketmar Dark <ket...@ketmar.no-ip.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ket...@ketmar.no-ip.org --- Comment #1 from Ketmar Dark <ket...@ketmar.no-ip.org> --- heh. this is stack overflow when trying to do semantic analysis on `tag`. compiler sees `tag` declaration inside struct with initialiser and starts semantic analysis of initializer, which comes to `tag` declaration inside struct with initialiser, and compiler starts semantic analysis of initializer, which comes to... also, this is not template-related bug, the following code gives the same result: struct A { enum int tag = tag; } void main () { auto a = A(); } compiler needs to check for recursive symbol usage in initializer. --