aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/downstream-placeholder.hh
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2021-03-10 04:22:56 +0000
committerJohn Ericson <John.Ericson@Obsidian.Systems>2023-08-14 08:44:50 -0400
commite7c39ff00b81dfdc48ebe7f41847db84ba779676 (patch)
treeaa32fd11345e50e45500df107bd3af3a8d7b975d /src/libstore/downstream-placeholder.hh
parenta04720e68ce45943ce0eae3d477f9d554b0d63a4 (diff)
Rework evaluator `SingleDerivedPath` infra
`EvalState::mkSingleDerivedPathString` previously contained its own inverse (printing, rather than parsing) in order to validate what was parsed. Now that is pulled out into its own separate function: `EvalState::coerceToSingleDerivedPath`. In additional that pulled out logic is deduplicated with `EvalState::mkOutputString` via `EvalState::mkOutputStringRaw`, which is itself deduplicated (and generalized) with `DownstreamPlaceholder::mkOutputStringRaw`. All these changes make the unit tests simpler. (We would ideally write more unit tests for `mkSingleDerivedPathString` `coerceToSingleDerivedPath` directly, but we cannot yet do that because the IO in reading the store path won't work when the dummy store cannot hold anything. Someday we'll have a proper in-memory store which will work for this.) Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
Diffstat (limited to 'src/libstore/downstream-placeholder.hh')
-rw-r--r--src/libstore/downstream-placeholder.hh3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/libstore/downstream-placeholder.hh b/src/libstore/downstream-placeholder.hh
index 9372dcd58..d58a2ac14 100644
--- a/src/libstore/downstream-placeholder.hh
+++ b/src/libstore/downstream-placeholder.hh
@@ -84,7 +84,8 @@ public:
* `SingleDerivedPath::Built.drvPath` chain.
*/
static DownstreamPlaceholder fromSingleDerivedPathBuilt(
- const SingleDerivedPath::Built & built);
+ const SingleDerivedPath::Built & built,
+ const ExperimentalFeatureSettings & xpSettings = experimentalFeatureSettings);
};
}