diff options
Diffstat (limited to 'lib/spack/spack/spec.py')
-rw-r--r-- | lib/spack/spack/spec.py | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py index 3586cb2aae..c7926ad3a3 100644 --- a/lib/spack/spack/spec.py +++ b/lib/spack/spack/spec.py @@ -3951,17 +3951,15 @@ class SpecParser(spack.parse.Parser): def spec_by_hash(self): self.expect(ID) - specs = spack.store.db.query() - matches = [spec for spec in specs if - spec.dag_hash()[:len(self.token.value)] == self.token.value] - + dag_hash = self.token.value + matches = spack.store.db.get_by_hash(dag_hash) if not matches: - raise NoSuchHashError(self.token.value) + raise NoSuchHashError(dag_hash) if len(matches) != 1: raise AmbiguousHashError( "Multiple packages specify hash beginning '%s'." - % self.token.value, *matches) + % dag_hash, *matches) return matches[0] |