Exhaustiveness in switch

Guy Steele guy.steele at oracle.com
Thu May 10 20:46:31 UTC 2018


> On May 10, 2018, at 4:54 PM, Brian Goetz <brian.goetz at oracle.com> wrote:
> 
>> * It would feel strange to even bother applying this exhaustiveness goo to byte switches. If we ever had ranges.... of course then, any type of switch could join the party. (I don't know whether ranges are a thing we're considering or not and I'm not pushing that we do.)
> 
> Yeah, its on the edge.  Its a no-brainer for `boolean`, its nuts for `int` (without ranges), but its vaguely defensible for `byte`.  Though I can't really get too excited about it.

The choice is not just among four sizes of integer.  One could imagine recognizing certain idioms such as

	switch (myInt & 7) {
	  case 2, 3, 5, 7 -> “prime”;
	  case 0, 1, 4 -> “square”;
	  case 6 -> “perfect”;
	}

and understanding that they are exhaustive.  Dunno if the compiler guys want to go there.

—Guy

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/amber-spec-experts/attachments/20180510/d163d4ae/attachment.html>


More information about the amber-spec-experts mailing list