enum type are used in the context of an integer or pointer type or vice versa (assigned, cast, passed as a parameter, returned from a
method, function, or block, and so on). You must explicitly cast one type to another to avoid the compiler warnings.