This inspection reports the cases when an expression of type A is used in the context of type B (assigned, casted, used in a parameter, returned from a method, function or a block, etc.) while the range of values of type B is not large enough to store all possible values of type A.