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 block, and so on) under the condition that A and B are class types, and B is not a superclass of A.