So here are summarized findings for enum and int types in the new switch expressions and statements: Incompleteness checks for Enum types: switch expression: static error message switch statement: static warning, no runtime checks, Fall-Thru semantics for missing cases! Incompleteness checks for int types: switch expression: static error message (asking for default case) switch statement: NO warning, no runtime checks, Fall-Thru semantics for missing cases! The general claim for completeness checks is not borne out. Incompleteness checks for (sealed) classes: still need to take a look at Sean's code ....