Reports the cases when an expression of type A is used in the context of type B (assigned, cast, passed as a parameter, returned from a
method, function, or a block, and so on) while the range of the values of type B is not large enough to store all possible values of type A.