null check to avoid an expensive coercion call, albeit for a rare case involving a downcast where the corresponding bytecode types are not assignable at runtime and require an actual coercion