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