In reply to MICRO_91:
The build_phase of a uvm_component does not start executing until at least one #0 delay. That number has been increasing every release (UVM 1.1d it was 5 #0’s, UVM 1.2 it was 8 #0’s, 1800.2-2017 it was over 10 #0’s). That’s a perfect example of why it is so bad to be using #0’s to force ordering within a time-step.
uvm_config_db uses the component context argument through the end of the build_phase to determine precedence. Higher levels have higher precedence, and a null context set from an initial block has the top-level context.