In reply to Peter Simon:
Could you try
set_inst_override_by_type(uvm_reg_block::get_type(), a_reg_block::get_type(), "bus_env_i.*reg_block");
?
Looks to me that the prototype of this function is
set_inst_override_by_type (uvm_object_wrapper original_type, uvm_object_wrapper override_type, string full_inst_path);
, so seems there is mismatch between actual paramemter and formal parameter ?