summaryrefslogtreecommitdiff
path: root/lib/spack/spack/spec.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/spack/spack/spec.py')
-rw-r--r--lib/spack/spack/spec.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py
index bddba98d71..235d4ad147 100644
--- a/lib/spack/spack/spec.py
+++ b/lib/spack/spack/spec.py
@@ -2434,9 +2434,16 @@ class Spec(object):
# take the best answer
opt, i, answer = min(result.answers)
- assert self.name in answer
+ name = self.name
+ # TODO: Consolidate this code with similar code in solve.py
+ if self.virtual:
+ providers = [spec.name for spec in answer.values()
+ if spec.package.provides(name)]
+ name = providers[0]
- concretized = answer[self.name]
+ assert name in answer
+
+ concretized = answer[name]
self._dup(concretized)
self._mark_concrete()