Reports the cases when an expression of type A is used in the context of type B (assigned, cast, passed as parameter, returned from a
method, function, or block, and so on) under the condition that A and B are class types, and B does not conform to a protocol to which A conforms.