From 9c70d51a4f011d14f92b7e8576a301060d6bca24 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Mon, 2 Aug 2021 21:42:56 -0700 Subject: [PATCH] concretizer: `impose()` for concrete specs should use body facts. The concretizer doesn't get a say in whether constraints from concrete specs are imposed, so use body facts for them. --- lib/spack/spack/solver/asp.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py index d82d93ff574..040bc23b9ae 100644 --- a/lib/spack/spack/solver/asp.py +++ b/lib/spack/spack/solver/asp.py @@ -821,9 +821,9 @@ def condition(self, required_spec, imposed_spec=None, name=None): return condition_id - def impose(self, condition_id, imposed_spec, node=True, name=None): + def impose(self, condition_id, imposed_spec, node=True, name=None, body=False): imposed_constraints = self.spec_clauses( - imposed_spec, body=False, required_from=name) + imposed_spec, body=body, required_from=name) for pred in imposed_constraints: # imposed "node"-like conditions are no-ops if not node and pred.name in ("node", "virtual_node"): @@ -1505,7 +1505,7 @@ def define_installed_packages(self, possible): self.gen.fact(fn.installed_hash(spec.name, h)) # this describes what constraints it imposes on the solve - self.impose(h, spec) + self.impose(h, spec, body=True) self.gen.newline() def setup(self, driver, specs, tests=False, reuse=False):