http://d.puremagic.com/issues/show_bug.cgi?id=5932
Don <clugd...@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |clugd...@yahoo.com.au --- Comment #1 from Don <clugd...@yahoo.com.au> 2011-05-06 01:47:34 PDT --- This is probably related to bug 4910, and also to bug 4269 ("invalid type accepted if evaluated while errors are gagged") There's a problem with the gagging system. One difficulty is that if there has been a forward reference, CTFE needs to run semantic3 on the function. If errors are gagged from inside VarDeclaration::semantic, the gagging should only apply to CTFE; the semantic3 errors should not be gagged. The problem is, the gagging system doesn't have any mechanism for ungagging. If we instantiated a template from inside is(typeof()), semantic errors should be gagged; we don't yet know if the template will be instantiated. Let's call this an investigative template instantiation. This is recursive; any template instantiated from inside a investigative template is also investigative. BUT, any semantic run on anything other than a investigative template should NOT be gagged. The simple incrementing and decrementing of global.gag doesn't quite work. The other side of the problem is bug 4269: failed templates are not removed. If there is an attempt to instantiate them from a non-gagged state, the original (previously suppressed) error messages should be shown. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------