Why the compiler cannot tell that you have considered all the values of an enum in a switch statement and that all paths ARE actually returning a value in my example here ( Swipe pictures for full code ) ( is returning 0 to suppress the compiler a good idea here ? )