Use designated initializers for DerivationOutputHash

This commit is contained in:
John Ericson 2020-06-19 14:58:30 +00:00
parent 237d88c97e
commit 145d88cb2a
4 changed files with 10 additions and 9 deletions

View file

@ -776,7 +776,10 @@ static void prim_derivationStrict(EvalState & state, const Pos & pos, Value * *
if (!jsonObject) drv.env["out"] = state.store->printStorePath(outPath);
drv.outputs.insert_or_assign("out", DerivationOutput {
.path = std::move(outPath),
.hash = DerivationOutputHash { ingestionMethod, std::move(h) },
.hash = DerivationOutputHash {
.method = ingestionMethod,
.hash = std::move(h),
},
});
}

View file

@ -124,8 +124,8 @@ static DerivationOutput parseDerivationOutput(const Store & store, istringstream
if (hashType == htUnknown)
throw Error("unknown hash hashAlgorithm '%s'", hashAlgo);
fsh = DerivationOutputHash {
std::move(method),
Hash(hash, hashType),
.method = std::move(method),
.hash = Hash(hash, hashType),
};
}
@ -424,8 +424,8 @@ static DerivationOutput readDerivationOutput(Source & in, const Store & store)
if (hashType == htUnknown)
throw Error("unknown hash hashAlgorithm '%s'", hashAlgo);
fsh = DerivationOutputHash {
std::move(method),
Hash(hash, hashType),
.method = std::move(method),
.hash = Hash(hash, hashType),
};
}

View file

@ -20,9 +20,6 @@ struct DerivationOutputHash {
: method(std::move(method))
, hash(std::move(hash))
{ }
DerivationOutputHash(const DerivationOutputHash &) = default;
DerivationOutputHash(DerivationOutputHash &&) = default;
DerivationOutputHash & operator = (const DerivationOutputHash &) = default;
std::string printMethodAlgo() const;
};

View file

@ -138,7 +138,8 @@ StorePath getDerivationEnvironment(ref<Store> store, const StorePath & drvPath)
drv.outputs.insert_or_assign("out", DerivationOutput {
.path = shellOutPath,
.hash = DerivationOutputHash {
FileIngestionMethod::Flat, Hash { }
.method = FileIngestionMethod::Flat,
.hash = Hash { },
},
});
drv.env["out"] = store->printStorePath(shellOutPath);