buildPaths(): Handle ecIncompleteClosure

buildPaths() on a non-derivation would incorrectly not throw an error
if the path didn't have a substitute.
This commit is contained in:
Eelco Dolstra 2016-11-14 15:00:17 +01:00
parent b77fb8acb5
commit 10ae8fabf1

View file

@ -3783,7 +3783,7 @@ void LocalStore::buildPaths(const PathSet & drvPaths, BuildMode buildMode)
PathSet failed;
for (auto & i : goals)
if (i->getExitCode() == Goal::ecFailed) {
if (i->getExitCode() != Goal::ecSuccess) {
DerivationGoal * i2 = dynamic_cast<DerivationGoal *>(i.get());
if (i2) failed.insert(i2->getDrvPath());
else failed.insert(dynamic_cast<SubstitutionGoal *>(i.get())->getStorePath());