protected function reloadBindingDescriptor(BindingDescriptor $bindingDescriptor)
    {
        if (!$bindingDescriptor->isLoaded()) {
            return;
        }

        // Keep backup of containing module before calling unload()
        $containingModule = $bindingDescriptor->getContainingModule();
        $typeName = $bindingDescriptor->getTypeName();
        $typeDescriptor = $this->typeDescriptors->getEnabled($typeName);

        // never fails with the check in the beginning
        $bindingDescriptor->unload();

        // never fails after unloading, given that the type name matches
        // (which we can guarantee here)
        $bindingDescriptor->load($containingModule, $typeDescriptor);

        $this->reloadedDescriptors[] = $bindingDescriptor;
    }