fix bug : match call tp and return tp should by self, method_id and defined_class. no test covered, only manually tested