I posted bugzilla entry: http://d.puremagic.com/issues/show_bug.cgi?id=10177a few days ago. In short, it says: 'why not just stop semantic3 passes at 1st error occurence' ?
Other entries related to irrelevant error messages that I've recently reported:10169 , 10141, 10177. On Mon, May 27, 2013 at 11:43 PM, Rainer Schuetze <[email protected]>wrote: > > > On 27.05.2013 13:51, Adam D. Ruppe wrote: > >> Yeah, me too. >> >> I take a working program and add "gf" to the middle of it. Here's the >> errors: >> >> base.d(2143): Error: found '{' when expecting ';' following statement >> base.d(2168): Error: unexpected ( in declarator >> base.d(2168): Error: basic type expected, not "div" >> base.d(2168): Error: found '"div"' when expecting ')' >> base.d(2168): Error: no identifier for declarator div.addChild(int) >> base.d(2168): Error: semicolon expected following function declaration >> base.d(2168): Error: Declaration expected, not ',' >> base.d(2177): Error: Declaration expected, not 'if' >> base.d(2179): Error: no identifier for declarator qrUrl >> base.d(2180): Error: unrecognized declaration >> >> >> OK.... now let's add a semicolon to it. Prepare yourself, here's what >> dmd gives me now: >> >> base.d(2141): Error: undefined identifier gf, did you mean template to(T)? >> /home/me/d/dmd2/linux/bin32/..**/../src/phobos/std/format.d(**1723): >> Error: >> template std.format.formatRange does not match any function template >> > [...] > > formattedWrite!(Appender!(**immutable(dchar)[]), dchar, >> immutable(dchar)[],immutable(**dchar)[],immutable(dchar)[],** >> immutable(dchar)[],immutable(**dchar)[]) >> >> make: *** [all] Error 1 >> >> > I think most of these floods of errors come from not wanting to > instantiate templates once any (completely unrelated) error has been shown. > This has improved, but I just found two instances of that in mtype.c: > > if (global.errors) > return new ErrorExp(); // TemplateInstance::semantic() will fail > anyway > > The mechanism of not showing errors if they contain ErrorExp seems to not > work in that case, but I think not even trying to do the instantiation is > unreasonable (just stopping compilation would be better). >
