[Issue 3867] Regression(1.051) forward referenced enum member via an alias, templates, and is(), D1 only

2011-12-19 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3867


Don  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


--- Comment #12 from Don  2011-12-19 03:22:47 PST ---
Fixed in DMD 1.071, probably as part of the fixes to error gagging.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3867] Regression(1.051) forward referenced enum member via an alias, templates, and is(), D1 only

2010-08-07 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3867



--- Comment #11 from Don  2010-08-07 10:17:42 PDT ---
(In reply to comment #10)
> May I ask why there are so many forward ref bugs in general and why fixing
> these bugs often causes other regressions? Just look at regressions like bug
> 4210...
> 
> Is the dmd code quality that bad or what?

No. To fix a forward reference bug, you need to change the order in which the
compiler performs its semantic pass. And this is difficult, largely because
it's quite difficult for the compiler to 'undo' analysis which it's already
done. So it's very easy to get wrong.

This is why most languages which are similar to D (eg, C++) don't allow
arbitrary forward references.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3867] Regression(1.051) forward referenced enum member via an alias, templates, and is(), D1 only

2010-08-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3867


nfx...@gmail.com changed:

   What|Removed |Added

 CC||nfx...@gmail.com


--- Comment #10 from nfx...@gmail.com 2010-08-06 20:32:24 PDT ---
May I ask why there are so many forward ref bugs in general and why fixing
these bugs often causes other regressions? Just look at regressions like bug
4210...

Is the dmd code quality that bad or what?

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3867] Regression(1.051) forward referenced enum member via an alias, templates, and is(), D1 only

2010-08-06 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3867


Don  changed:

   What|Removed |Added

Version|1.057   |D1
Summary|Regression(1.051): forward  |Regression(1.051) forward
   |referenced enum member via  |referenced enum member via
   |an alias, templates, and|an alias, templates, and
   |is()|is(), D1 only


--- Comment #9 from Don  2010-08-06 03:47:27 PDT ---
This is very strange. Worked up to 1.050, failed in 1.051, 1.052, 1.053;
worked again in 1.054 and 1.055, failed since then in D1.
Does not apply to D2.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3867] Regression(1.051): forward referenced enum member via an alias, templates, and is()

2010-03-12 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3867



--- Comment #8 from Fawzi Mohamed  2010-03-12 05:29:38 PST ---
Thanks for the reduction, I knew that just the instantiation was the problem,
but I hadn't found a proper reduction...

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---


[Issue 3867] Regression(1.051): forward referenced enum member via an alias, templates, and is()

2010-03-11 Thread d-bugmail
http://d.puremagic.com/issues/show_bug.cgi?id=3867


Don  changed:

   What|Removed |Added

Summary|pragma(msg) with a forward  |Regression(1.051): forward
   |referenced enum member via  |referenced enum member via
   |an alias, templates,|an alias, templates, and
   |tuples, and CTFE|is()


--- Comment #7 from Don  2010-03-11 08:12:01 PST ---
Reduced test case shows it has nothing to do with tuples or CTFE. Can probably
be simplified further.
This worked in 1.050, but failed in 1.051.

enum ArrayFlags {
None =0,
}

class red(int rank) {
  uint flags = Flags.None;
  alias ArrayFlags Flags;
}

void violet(Y) (red!(2) b) {
static assert (!is(red!(7) : red!(3)));
}

void main(){
violet!(int)(null);
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
--- You are receiving this mail because: ---