diff options
author | Andrew W Elble <aweits@rit.edu> | 2020-12-02 03:53:53 -0500 |
---|---|---|
committer | Tamara Dahlgren <dahlgren1@llnl.gov> | 2021-02-17 17:07:19 -0800 |
commit | 598c25b434aa2599f4ad45cff3749efd36c99c9e (patch) | |
tree | 8629ab749dd9d3e3001b9227a785258ec0484569 /lib | |
parent | 24fb43cc43d908a421bddd26eb714338050d428b (diff) | |
download | spack-598c25b434aa2599f4ad45cff3749efd36c99c9e.tar.gz spack-598c25b434aa2599f4ad45cff3749efd36c99c9e.tar.bz2 spack-598c25b434aa2599f4ad45cff3749efd36c99c9e.tar.xz spack-598c25b434aa2599f4ad45cff3749efd36c99c9e.zip |
concretizer: don't optimize emitting version_satisfies() (#20128)
When all versions were allowed a version_satisfies rule was not emitted,
and this caused conditional directives to fail.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/spack/spack/solver/asp.py | 4 | ||||
-rw-r--r-- | lib/spack/spack/test/concretize.py | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/lib/spack/spack/solver/asp.py b/lib/spack/spack/solver/asp.py index 9c78546455..f0fa41fb6e 100644 --- a/lib/spack/spack/solver/asp.py +++ b/lib/spack/spack/solver/asp.py @@ -1395,10 +1395,6 @@ class SpackSolverSetup(object): if exact_match: allowed_versions = exact_match - # don't bother restricting anything if all versions are allowed - if len(allowed_versions) == len(self.possible_versions[pkg_name]): - continue - predicates = [fn.version(pkg_name, v) for v in allowed_versions] # version_satisfies(pkg, constraint) is true if and only if a diff --git a/lib/spack/spack/test/concretize.py b/lib/spack/spack/test/concretize.py index fa08eb8097..e5cd8b162a 100644 --- a/lib/spack/spack/test/concretize.py +++ b/lib/spack/spack/test/concretize.py @@ -501,6 +501,11 @@ class TestConcretize(object): with pytest.raises(spack.error.SpackError): s.concretize() + def test_conflict_in_all_directives_true(self): + s = Spec('when-directives-true') + with pytest.raises(spack.error.SpackError): + s.concretize() + @pytest.mark.parametrize('spec_str', [ 'conflict@10.0%clang+foo' ]) |