aboutsummaryrefslogtreecommitdiff
path: root/src/nix/app.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/nix/app.cc')
-rw-r--r--src/nix/app.cc19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/nix/app.cc b/src/nix/app.cc
index 67c5ef344..34fac9935 100644
--- a/src/nix/app.cc
+++ b/src/nix/app.cc
@@ -20,15 +20,22 @@ StringPairs resolveRewrites(
const std::vector<BuiltPathWithResult> & dependencies)
{
StringPairs res;
- for (auto & dep : dependencies)
- if (auto drvDep = std::get_if<BuiltPathBuilt>(&dep.path))
- if (experimentalFeatureSettings.isEnabled(Xp::CaDerivations))
- for (auto & [ outputName, outputPath ] : drvDep->outputs)
+ if (experimentalFeatureSettings.isEnabled(Xp::CaDerivations)) {
+ for (auto & dep : dependencies) {
+ if (auto drvDep = std::get_if<BuiltPathBuilt>(&dep.path)) {
+ for (auto & [ outputName, outputPath ] : drvDep->outputs) {
res.emplace(
- DownstreamPlaceholder::unknownCaOutput(
- drvDep->drvPath->outPath(), outputName).render(),
+ DownstreamPlaceholder::fromSingleDerivedPathBuilt(
+ SingleDerivedPath::Built {
+ .drvPath = make_ref<SingleDerivedPath>(drvDep->drvPath->discardOutputPath()),
+ .output = outputName,
+ }).render(),
store.printStorePath(outputPath)
);
+ }
+ }
+ }
+ }
return res;
}