Keep the isFlake attribute for overriden inputs

When overriding an input that isn’t a flake, mark the override as also not
being a flake.

Fix #3774
This commit is contained in:
regnat 2021-06-29 13:53:56 +02:00
parent 81535022dc
commit 4cff8188a5

View file

@ -359,7 +359,12 @@ LockedFlake lockFlake(
ancestors? */
auto i = overrides.find(inputPath);
bool hasOverride = i != overrides.end();
if (hasOverride) overridesUsed.insert(inputPath);
if (hasOverride) {
overridesUsed.insert(inputPath);
// Respect the “flakeness” of the input even if we
// override it
i->second.isFlake = input2.isFlake;
}
auto & input = hasOverride ? i->second : input2;
/* Resolve 'follows' later (since it may refer to an input