Groovy does not require that switch expression must be exhaustive. It acts as if an implicit default -> null
branch is inserted.
It may cause unexpected nulls if a developer forgets to insert necessary case
branches.
Example:
enum A { X, Y }
def foo(A a) {
def x = switch (a) { // reports switch
case A.X -> ...
}
}