September 21, 2011
http://d.puremagic.com/issues/show_bug.cgi?id=4269


yebblies <yebblies@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |


--- Comment #10 from yebblies <yebblies@gmail.com> 2011-09-21 12:13:36 EST ---
That patch only fixes this issue for alias and typedef, not other declarations.

D2 commit: https://github.com/D-Programming-Language/dmd/commit/a12dfec8b6427ae08730ff52c6b54e83f16906e3

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 07, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4269



--- Comment #11 from Walter Bright <bugzilla@digitalmars.com> 2012-02-06 20:59:24 PST ---
The whole idea of error gagging is probably bogus because of this.

I don't know what to do about it.

One possibility might be to attach gagged error messages to the symbol having semantic() run on, and then "replaying" those messages if the symbol is used outside of the gag.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 07, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4269



--- Comment #12 from yebblies <yebblies@gmail.com> 2012-02-07 17:28:39 EST ---
Don seems to have a handle on this.  He explained his solution to me in comments on https://github.com/D-Programming-Language/dmd/pull/652 and it seems quite solid.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 07, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4269



--- Comment #13 from github-bugzilla@puremagic.com 2012-02-06 22:42:30 PST ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/75ccf8c3ae057aad7128d710fe735f7772be0471
Issue 4269 - Regression(2.031): invalid type accepted if evaluated while errors
are gagged

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 07, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4269


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         OS/Version|Windows                     |All


--- Comment #14 from Walter Bright <bugzilla@digitalmars.com> 2012-02-06 22:44:36 PST ---
My patch doesn't thoroughly fix this, it just gets it off the regression list. It outputs a generic error message.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 07, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4269


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|regression                  |normal


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 07, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4269



--- Comment #15 from Don <clugdbug@yahoo.com.au> 2012-02-07 01:05:27 PST ---
So far my patch fixes the original bug report, and about 60% of Daniel's extra test cases.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 09, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4269



--- Comment #16 from Don <clugdbug@yahoo.com.au> 2012-02-09 07:55:58 PST ---
Even with the new patch, this example from comment 5 :

static if(is(typeof(X3.init))) {}
void X3(T3) { }

is an ICE(glue.c) for 2.047 on. It generated an error on 2.045 and earlier. (On
2.046 it silently generated bad code). Perhaps it should be treated as a
different bug.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 09, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4269



--- Comment #17 from yebblies <yebblies@gmail.com> 2012-02-10 03:08:33 EST ---
(In reply to comment #16)
> Even with the new patch, this example from comment 5 :
> 
> static if(is(typeof(X3.init))) {}
> void X3(T3) { }
> 
> is an ICE(glue.c) for 2.047 on. It generated an error on 2.045 and earlier. (On
> 2.046 it silently generated bad code). Perhaps it should be treated as a
> different bug.

Yep, different bug.  The crash is due to an error in a parameter type not resulting in TypeFunction::semantic returning terror.  (Or at least, that and the fact it reaches code generation due to this bug.)  I swear I fixed this in a pull request last year, but it must've been part of something that never got accepted.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 10, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4269


yebblies <yebblies@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Platform|Other                       |All
           Severity|normal                      |regression


--- Comment #18 from yebblies <yebblies@gmail.com> 2012-02-10 22:17:54 EST ---
Having a closer look at Walter's patch, this only fixes the issue for class, struct and interface declarations.  From the list in comment 5, function, variable, template and alias this declarations still need to be fixed to get this off the regression list.

Don, I thought you meant you'd tested with your new patch and it still crashed - is this the case or is this only with Walter's fix?  The underlying reason is the same, but when this bug is fixed the crash will disappear as it will never get to codegen.

Walter, please see the list in comment 5, everything here needs to fail before
this stops being an ice/regression.  Please also note that
https://github.com/D-Programming-Language/dmd/commit/75ccf8c3ae057aad7128d710fe735f7772be0471
overwrote three test cases from this bug that dealt with alias and template
declarations.

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