January 27, 2007
The error message for this test case has changed from what it was when it was created.

From bugs/2983, DMD 0.111 outputs:
    Assertion failure: '0' on line 909 in file 'func.c'
    abnormal program termination

With DMD 1.00
$ dmd alias_17.d
alias_17.d(17): variable dstress.nocompile.alias_17._test is aliased to a function
alias_17.d(21): function dstress.nocompile.alias_17.test () does not match parameter types (int)
alias_17.d(21): Error: expected 0 arguments, not 1

$ cat -n alias_17.d
     1  // $HeadURL: http://dstress.kuehne.cn/nocompile/alias_17.d $
     2  // $Date: 2005-12-03 23:19:07 +0100 (Sat, 03 Dec 2005) $
     3  // $Author: thomask $
     4
     5  // @author@     Ilya Zaitseff <sark7@mail333.com>
     6  // @date@       2005-02-14
     7  // @uri@        news:opsl6xrbnaaaezs2@robingood
     8  // @url@        nntp://news.digitalmars.com/digitalmars.D.bugs/2983
     9
    10  // __DSTRESS_ELINE__ 18
    11
    12  module dstress.nocompile.alias_17;
    13
    14  void test(){
    15  }
    16
    17  int _test;
    18  alias _test test;
    19
    20  void check(){
    21          test = 1;
    22  }

Now the fun question.. is this invalid code or not?  It's a form of shadowing as there's two 'test's in play.  The error messages do indicate that, though the line producing the error surprises me.  My instinct would have been that the alias line would have been messaged. I wonder how hard it'd be for all three lines to be referenced just to make it very clear what's going on.

The easy thing to do would be to change line 10 to point at 17 instead of 18 and move along, considering the original bug fixed.

Thoughts?

Later,
Brad