It's designed to generate warnings to warn you if you've left out anything from the enum - if you add anything to the enum it alerts you to make sure you don't need to put any new behaviour there. Defaults supress that useful feature, just using a list of things to do nothing with would be better.