pub fn infer_generic_args_from_types( generic_params: &[Type], decl_tys: &[Type], arg_tys: &[Type], ) -> Vec<Type>