1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-26 03:21:16 +02:00

Make it hard to construct an empty OutputsSpec::Names

This should be a non-empty set, and so we don't want people doing this
by accident. We remove the zero-0 constructor with a little inheritance
trickery.
This commit is contained in:
John Ericson 2023-01-11 11:54:43 -05:00
parent 8a3b1b7ced
commit 114a6e2b09
7 changed files with 26 additions and 11 deletions

View file

@ -479,7 +479,7 @@ struct InstallableAttrPath : InstallableValue
auto derivedPath = byDrvPath.emplace(*drvPath, DerivedPath::Built {
.drvPath = *drvPath,
// Not normally legal, but we will merge right below
.outputs = OutputsSpec::Names { },
.outputs = OutputsSpec::Names { StringSet { } },
}).first;
derivedPath->second.outputs.merge(std::visit(overloaded {