+ value_type = get_method_value_param_type(mtp);
+ if (value_type != NULL) {
+ /* set new param positions */
+ for (i = 0; i < nn_params; ++i) {
+ ir_entity *ent = get_method_value_param_ent(lowered, i);
+ int pos = param_map[i];
+ ident *id;
+
+ set_entity_link(ent, INT_TO_PTR(pos));
+ if (pos < 0) {
+ /* formally return value, ignore for now */
+ continue;
+ }
+
+ id = get_method_param_ident(mtp, pos);
+ if (id != NULL) {
+ set_method_param_ident(lowered, i, id);
+ set_entity_ident(ent, id);
+ }
+ }
+
+ set_lowered_type(value_type, get_method_value_param_type(lowered));
+ }
+