diff --git a/lib/spack/spack/concretize.py b/lib/spack/spack/concretize.py index 2351e2bfc9e..2d5b66487eb 100644 --- a/lib/spack/spack/concretize.py +++ b/lib/spack/spack/concretize.py @@ -385,14 +385,13 @@ def _proper_compiler_style(cspec, arch): arch.platform_os) # copy concrete version into other_compiler - index = 0 - while not _proper_compiler_style(matches[index], spec.architecture): - index += 1 - if index == len(matches) - 1: - arch = spec.architecture - raise UnavailableCompilerVersionError(spec.compiler, - arch.platform_os) - spec.compiler = matches[index].copy() + try: + spec.compiler = next( + c for c in matches + if _proper_compiler_style(c, spec.architecture)).copy() + except StopIteration: + raise UnavailableCompilerVersionError(spec.compiler, + arch.platform_os) assert(spec.compiler.concrete) return True # things changed.