------- Comment #3 from  2009-04-22 07:34 -------
(In reply to comment #2)
> "it's not bad code generation" - how do you work that out?

Bad code generation generally means the front-end is sending incorrect data to
the backend; or else there's a bug in the backend. (Also for the case of CTFE,
it can also include bugs in the interpreter; in that case, the frontend is the

In this case, the bug is really in the spec: the spec states a vague intention
about how contracts should work, but there's never been any attempt whatsoever
to implement it in the compiler. At the very least, the spec should say that
it's not implemented, and I suspect that it should be completely removed from
the D1 spec, unless Walter actually intends to implement it in D1.

I notice that these unimplemented things (array operations was the other
obvious one, but I suspect there are others) all date from the very early days
of D. In modern times, Walter's mostly changed the spec only when he's actually
implemented something.


Reply via email to