fix promotion type bug