[Submission] D Slices

Jonathan M Davis jmdavisProg at gmx.com
Tue May 31 19:11:06 PDT 2011


On 2011-05-31 18:57, Andrei Alexandrescu wrote:
> On 05/31/2011 07:58 PM, Jonathan M Davis wrote:
> > On 2011-05-31 15:03, Andrei Alexandrescu wrote:
> >> On 5/31/11 4:46 PM, KennyTM~ wrote:
> >>> On Jun 1, 11 05:37, Andrej Mitrovic wrote:
> >>>> If you didn't have fallback, you would probably have to add some kind
> >>>> of new statement like "goto next" or "fallback" on each of those
> >>>> cases.
> >>> 
> >>> It already exists. It is called#
> >>> 
> >>> goto case;
> >> 
> >> Sigh. Unless it's a recent addition, I didn't know about it, Walter
> >> missed the case during proofreading, and consequently that's not
> >> documented in TDPL.
> > 
> > He probably always uses implicit fallthrough in his own code, and we know
> > that he doesn't use fallthrough in switch statements as much as he
> > thought that he did, so I suppose that it's not a great surprise that he
> > miissed it. It would have been nice to have it in TDPL though.
> > 
> > - Jonathan M Davis
> 
> Probably it would be best to take this opportunity to make the language
> change and then document it in a future edition of the book. With "goto
> case;" reducing the incremental cost of falling through to near
> non-existence, I think there is no excuse to keep the current behavior.
> 
> Also, I think the runtime error on not handling all cases should be
> eliminated as well. It's very non-D-ish and error prone in the extreme
> (as unhandled cases tend to be often rare too). Right there with the
> HiddenFunc error.
> 
> I think improving switch and hidden functions to err during compilation
> would be right in line with our push to making correct code easy to
> write and incorrect code difficult to write.

Definitely. Also, it would be nice if final switch actually worked. In my 
experience, it never does, though maybe that's changed since I last messed 
with it. Regardless, there are definitely some basic changes which can be made 
to switch which don't reduce its useability but which definitely reduce the 
number of errors that you're likely to get when using it.

- Jonathan M Davis


More information about the Digitalmars-d mailing list