Two parser problems, different bugs but closely related:
(A) D2-only.
#line __LINE__ "y.d"
crash.d(3): #line integer ["filespec"]\n expected
crash.d(3): Declaration expected, not '"y.d"'
But #line 7 __FILE__ works
From the spec, it's not clear if this should work, or not. But it works on D1, and it worked on prehistoric D2 (D2.012, for example).
(B) Doing things like:
#line 47 __VERSION__
#line 888 __DATE__
causes the compiler to hang on both D1 and D2.