February 10, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4269


yebblies <yebblies@gmail.com> changed:

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


--- Comment #19 from yebblies <yebblies@gmail.com> 2012-02-10 23:05:52 EST ---
To be more specific - any declaration semantic routine that might result in errors needs to give an error the second time semantic is run too - the reason it happens with the X3 test case is because errors in parameter types are not propagated to the function type, but there are plenty of other errors in FuncDeclaration::semantic that will be silently ignored as the type isn't set to Type::terror.  I haven't looked at the other declaration types yet but there are probably cases there too.

Some FuncDeclaration cases:

//static if (is(typeof(X17.init))) {}
//scope void X17() {}

//static if (is(typeof(X18.init))) {}
//abstract void X18() {}

//static if (is(typeof(X19.init))) {}
//override void X19() {}

//static if (is(typeof(X20.init))) {}
//const void X20() {}

//static if (is(typeof(X21.init))) {}
//immutable void X21() {}

//static if (is(typeof(main.init))) {}
//string main();

//static if (is(typeof(main.init))) {}
//auto main() { return ""; }

//static if (is(typeof(main.init))) {}
//void main(int) { }

Some of these are just accepts-invalid with meaningless attributes, but the 'main' ones will generate wrong code.

Errors in the declaration type are not all that needs to be monitored - either the error count needs to be examined or every possible error needs to set the type to Type::terror.

-- 
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
----------------------------------------------------------------------------
           Keywords|                            |wrong-code


--- Comment #20 from yebblies <yebblies@gmail.com> 2012-02-10 23:11:42 EST ---
The approach of using Declaration::type to signal semantic failed also relies on Type::semantic returning Type::terror on every error - this is not followed everywhere.

-- 
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



--- Comment #21 from Don <clugdbug@yahoo.com.au> 2012-02-10 07:12:18 PST ---
My upcoming patch fixes all of your cases in comment 5 except #13. My comment in comment 16 is about Walter's commit, not my patch.

But it's not quite ready, it fails some cases in the test suite related to
__traits(compiles) with deprecated and purity.
I *think* I just have to do a bit more work on enabling and disabling gagging
at the right time.

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



--- Comment #22 from github-bugzilla@puremagic.com 2012-02-11 10:26:23 PST ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/ae73e0e9e0cca35cc47ebcb08700f674a0c77ad0 Merge pull request #706 from yebblies/issue4269x

Restore tests that were accidentally removed.

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



--- Comment #23 from github-bugzilla@puremagic.com 2012-02-22 02:22:28 PST ---
Commit pushed to dmd-1.x at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/baf9d8c832c50e15912d16c7dd9f85fcf440522f
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 22, 2012
http://d.puremagic.com/issues/show_bug.cgi?id=4269



--- Comment #24 from Walter Bright <bugzilla@digitalmars.com> 2012-02-22 02:25:38 PST ---
https://github.com/D-Programming-Language/dmd/pull/729

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


Don <clugdbug@yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |verylonglogin.reg@gmail.com


--- Comment #25 from Don <clugdbug@yahoo.com.au> 2012-05-03 02:53:14 PDT ---
*** Issue 6296 has been marked as a duplicate of this issue. ***

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


Don <clugdbug@yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull


--- Comment #26 from Don <clugdbug@yahoo.com.au> 2012-12-13 01:05:42 PST ---
All test cases now correctly give an error, except for case 13, which is fixed in

https://github.com/D-Programming-Language/dmd/pull/1370

There are also diagnostic problems with 3 other test cases, I have created bug 9146 for those. It is much less serious than this bug.

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



--- Comment #27 from github-bugzilla@puremagic.com 2012-12-13 06:46:13 PST ---
Commit pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/2a1d419a4d87c9a29d3d07f78fc8319ed8a5fc37
Fix bug 4269 case 13:invalid template accepted if evaluated while errors are
gagged

Need to ungag template declarations if they are forward referenced.

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



--- Comment #28 from github-bugzilla@puremagic.com 2013-01-16 01:52:33 PST ---
Commit pushed to dmd-1.x at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/f0a12c85632e5bba8bf0752aa66f2ab97317e5c9
Fix bug 4269 case 13:invalid template accepted if evaluated while errors are
gagged

Need to ungag template declarations if they are forward referenced.

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