www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - dstress alias_17.d

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
Jan 27 2007