diff options
-rw-r--r-- | lib/spack/spack/solver/concretize.lp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/spack/spack/solver/concretize.lp b/lib/spack/spack/solver/concretize.lp index 4a2edaa067..5f8163c61b 100644 --- a/lib/spack/spack/solver/concretize.lp +++ b/lib/spack/spack/solver/concretize.lp @@ -523,6 +523,12 @@ attr("virtual_on_edge", PackageNode, ProviderNode, Virtual) provider(ProviderNode, node(_, Virtual)), not external(PackageNode). +% If a virtual node is in the answer set, it must be either a virtual root, +% or used somewhere +:- attr("virtual_node", node(_, Virtual)), + not attr("virtual_on_incoming_edges", _, Virtual), + not attr("virtual_root", node(_, Virtual)). + attr("virtual_on_incoming_edges", ProviderNode, Virtual) :- attr("virtual_on_edge", _, ProviderNode, Virtual). |