aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/primops/context.cc
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2023-08-16 12:29:23 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2023-08-18 11:44:00 -0400
commit9121fed4b4d02c286166373fe9805773afb13694 (patch)
tree195ec159fde2c2b2e81b8270101f2c37f38e097c /src/libexpr/primops/context.cc
parent284c18073233b3c7e7e027d696465a0e773dc881 (diff)
Fixing #7479
Types converted: - `NixStringContextElem` - `OutputsSpec` - `ExtendedOutputsSpec` - `DerivationOutput` - `DerivationType` Existing ones mostly conforming the pattern cleaned up: - `ContentAddressMethod` - `ContentAddressWithReferences` The `DerivationGoal::derivationType` field had a bogus initialization, now caught, so I made it `std::optional`. I think #8829 can make it non-optional again because it will ensure we always have the derivation when we construct a `DerivationGoal`. See that issue (#7479) for details on the general goal. `git grep 'Raw::Raw'` indicates the two types I didn't yet convert `DerivedPath` and `BuiltPath` (and their `Single` variants) . This is because @roberth and I (can't find issue right now...) plan on reworking them somewhat, so I didn't want to churn them more just yet. Co-authored-by: Eelco Dolstra <edolstra@gmail.com>
Diffstat (limited to 'src/libexpr/primops/context.cc')
-rw-r--r--src/libexpr/primops/context.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/libexpr/primops/context.cc b/src/libexpr/primops/context.cc
index bfc731744..e8542503a 100644
--- a/src/libexpr/primops/context.cc
+++ b/src/libexpr/primops/context.cc
@@ -51,13 +51,13 @@ static void prim_unsafeDiscardOutputDependency(EvalState & state, const PosIdx p
NixStringContext context2;
for (auto && c : context) {
- if (auto * ptr = std::get_if<NixStringContextElem::DrvDeep>(&c)) {
+ if (auto * ptr = std::get_if<NixStringContextElem::DrvDeep>(&c.raw)) {
context2.emplace(NixStringContextElem::Opaque {
.path = ptr->drvPath
});
} else {
/* Can reuse original item */
- context2.emplace(std::move(c));
+ context2.emplace(std::move(c).raw);
}
}
@@ -114,7 +114,7 @@ static void prim_getContext(EvalState & state, const PosIdx pos, Value * * args,
[&](NixStringContextElem::Opaque && o) {
contextInfos[std::move(o.path)].path = true;
},
- }, ((NixStringContextElem &&) i).raw());
+ }, ((NixStringContextElem &&) i).raw);
}
auto attrs = state.buildBindings(contextInfos.size());