'Replace this virtual spec with a concrete spec.'

def _replace_with(self, concrete):

    assert self.virtual
    for (name, dep_spec) in self._dependents.items():
        dependent = dep_spec.parent
        deptypes = dep_spec.deptypes
        if (self.name in dependent._dependencies):
            del dependent._dependencies[self.name]
        if (concrete.name not in dependent._dependencies):
            dependent._add_dependency(concrete, deptypes)
