Wed, 12 Aug 2009 10:22:22 -0400, Jarrett Billingsley thusly wrote: > but DMD crashes. :P
Who would have guessed! It would help if the compiler knew how to do semantic analysis.. here are a couple of additional test cases - a type checker for these can be written in approximately 30 minutes in Prolog or SML or something similar. # auto foo() { return 1; } # pragma(msg, typeof(foo).stringof); # void main() { # foo(); # } : foo.d(3): Error: forward reference to foo : foo.d(3): Error: forward reference to inferred return type of function call (())() : (())() # auto foo(int a) { return a>0 ? foo(a-1) : a; } # void main() { # foo(0); #} : foo.d(1): Error: forward reference to foo : foo.d(1): Error: forward reference to inferred return type of function call foo(a - 1)