union types should test if its targets are really not assignable if it
is not an exact match