Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
Both checkstyle and error-prone can alert when a switch statement is missing a default. However, because checkstyle does it via static analysis and error-prone does it during compilation, e-p can detect when all cases of an enum have been covered, and will not warn about the needed default case.
In fact, checkstyle explicitly mentions in their docs that even if you cover all enum cases now, you should still have a default label because the enum could change in the future. Which seems silly to me, because your analysis tools should still be running in the future and would catch it then.
Se we should migrate the check from checkstyle to a slightly smarter error-prone check.