From adfc1c0896b74767d7504411f8d3c38050272fb0 Mon Sep 17 00:00:00 2001 From: Gregory Becker Date: Tue, 13 Dec 2022 13:27:25 -0800 Subject: [PATCH] error messages: add causation for conflicting variants error --- lib/spack/spack/solver/concretize.lp | 12 ++++++++++++ lib/spack/spack/solver/display.lp | 1 + 2 files changed, 13 insertions(+) diff --git a/lib/spack/spack/solver/concretize.lp b/lib/spack/spack/solver/concretize.lp index c18b99b8f1d..cdfea9883ae 100644 --- a/lib/spack/spack/solver/concretize.lp +++ b/lib/spack/spack/solver/concretize.lp @@ -613,6 +613,18 @@ attr("variant_value", Package, Variant, Value) :- variant(Package, Variant), build(Package). +error(0, "'{0}' required multiple values for single-valued variant '{1}'\n Requested 'Spec({1}={2})' and 'Spec({1}={3})'", Package, Variant, Value1, Value2, startcauses, Cause1, Cause2) + :- attr("node", Package), + variant(Package, Variant), + variant_single_value(Package, Variant), + build(Package), + attr("variant_value", Package, Variant, Value1), + imposed_constraint(Cause1, "variant_set", Package, Variant, Value1), + condition_holds(Cause1), + attr("variant_value", Package, Variant, Value2), + imposed_constraint(Cause2, "variant_set", Package, Variant, Value2), + condition_holds(Cause2), + Value1 < Value2. % see[1] error(100, "'{0}' required multiple values for single-valued variant '{1}'", Package, Variant) :- attr("node", Package), diff --git a/lib/spack/spack/solver/display.lp b/lib/spack/spack/solver/display.lp index ff7c8f987fc..868062b3f48 100644 --- a/lib/spack/spack/solver/display.lp +++ b/lib/spack/spack/solver/display.lp @@ -25,6 +25,7 @@ #show error/6. #show error/7. #show error/8. +#show error/9. % show cause -> effect data for errors #show condition_cause/2.