for slot_key, slot_info in self._dynamic_config._slot_operator_deps.items():
for dep in slot_info:
- if not (dep.child.built and dep.parent and
+ if not (dep.parent and
isinstance(dep.parent, Package) and dep.parent.built):
continue
not (deep is not True and depth > deep))
dep.child = pkg
- if (not pkg.onlydeps and pkg.built and
+ if (not pkg.onlydeps and
dep.atom and dep.atom.slot_operator_built):
self._add_slot_operator_dep(dep)
test_cases = (
# Demonstrate bug #439694, where a broken slot-operator
- # sub-slot dependency fails to trigger rebuild.
+ # sub-slot dependency needs to trigger a rebuild.
ResolverPlaygroundTestCase(
["@world"],
options = {"--update": True, "--deep": True},
success = True,
- mergelist = ["app-misc/A-1"]),
+ mergelist = ["app-misc/B-0"]),
+ # This doesn't trigger a rebuild, since there's no version
+ # change to trigger complete graph mode, and initially
+ # unsatisfied deps are ignored in complete graph mode anyway.
ResolverPlaygroundTestCase(
["app-misc/A"],
options = {"--oneshot": True},