This circumstance can only arise as a result of heap pollution (§4.12.2). In practice,
implementations need only perform casts when accessing a field or method of an object
of parameterized type when the erased type of the field, or the erased return type of the
method, differ from its unerased type.