Right now, it does nothing only if the original and resulting type are the same. That seems wrong to me. Shouldn't it also do nothing if the types are compatible? I don't have any specific bug here, but I did notice this when looking for another bug (that wasn't caused by this).