From c0fa61340c00f7d2b7435e01a50a6dcdae18c88d Mon Sep 17 00:00:00 2001
From: eldritch horrors <pennae@lix.systems>
Date: Mon, 4 Mar 2024 04:41:52 +0100
Subject: [PATCH] Merge pull request #9172 from tfc/bad-moves

Fix/remove some bad std::moves

(cherry picked from commit 8c049a9f044569ebda70231709f6f15d3073894a)
Change-Id: I720273378d2506a13883acee28abd096d099b0d4
---
 src/libexpr/eval.cc                         | 6 +++---
 src/libexpr/paths.cc                        | 2 +-
 src/libstore/build/derivation-goal.cc       | 2 +-
 src/libstore/build/local-derivation-goal.cc | 2 +-
 src/libstore/content-address.cc             | 2 +-
 src/libstore/outputs-spec.cc                | 2 +-
 6 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc
index e03a0e615..b1268bb12 100644
--- a/src/libexpr/eval.cc
+++ b/src/libexpr/eval.cc
@@ -539,7 +539,7 @@ EvalState::EvalState(
             auto r = resolveSearchPathPath(i.path);
             if (!r) continue;
 
-            auto path = *std::move(r);
+            auto path = std::move(*r);
 
             if (store->isInStore(path)) {
                 try {
@@ -1035,7 +1035,7 @@ std::string EvalState::mkOutputStringRaw(
     /* In practice, this is testing for the case of CA derivations, or
        dynamic derivations. */
     return optStaticOutputPath
-        ? store->printStorePath(*std::move(optStaticOutputPath))
+        ? store->printStorePath(std::move(*optStaticOutputPath))
         /* Downstream we would substitute this for an actual path once
            we build the floating CA derivation */
         : DownstreamPlaceholder::fromSingleDerivedPathBuilt(b, xpSettings).render();
@@ -2290,7 +2290,7 @@ BackedStringView EvalState::coerceToString(
                     && (!v2->isList() || v2->listSize() != 0))
                     result += " ";
             }
-            return std::move(result);
+            return result;
         }
     }
 
diff --git a/src/libexpr/paths.cc b/src/libexpr/paths.cc
index 1d690b722..b6a696f47 100644
--- a/src/libexpr/paths.cc
+++ b/src/libexpr/paths.cc
@@ -4,7 +4,7 @@ namespace nix {
 
 SourcePath EvalState::rootPath(CanonPath path)
 {
-    return std::move(path);
+    return path;
 }
 
 }
diff --git a/src/libstore/build/derivation-goal.cc b/src/libstore/build/derivation-goal.cc
index dc4d91079..360c6b70b 100644
--- a/src/libstore/build/derivation-goal.cc
+++ b/src/libstore/build/derivation-goal.cc
@@ -561,7 +561,7 @@ void DerivationGoal::inputsRealised()
               attempt = fullDrv.tryResolve(worker.store);
             }
             assert(attempt);
-            Derivation drvResolved { *std::move(attempt) };
+            Derivation drvResolved { std::move(*attempt) };
 
             auto pathResolved = writeDerivation(worker.store, drvResolved);
 
diff --git a/src/libstore/build/local-derivation-goal.cc b/src/libstore/build/local-derivation-goal.cc
index 64b55ca6a..61bcd00ce 100644
--- a/src/libstore/build/local-derivation-goal.cc
+++ b/src/libstore/build/local-derivation-goal.cc
@@ -2511,7 +2511,7 @@ SingleDrvOutputs LocalDerivationGoal::registerOutputs()
             ValidPathInfo newInfo0 {
                 worker.store,
                 outputPathName(drv->name, outputName),
-                *std::move(optCA),
+                std::move(*optCA),
                 Hash::dummy,
             };
             if (*scratchPath != newInfo0.path) {
diff --git a/src/libstore/content-address.cc b/src/libstore/content-address.cc
index e290a8d38..ae91b859b 100644
--- a/src/libstore/content-address.cc
+++ b/src/libstore/content-address.cc
@@ -83,7 +83,7 @@ static std::pair<ContentAddressMethod, HashType> parseContentAddressMethodPrefix
         if (!hashTypeRaw)
             throw UsageError("content address hash must be in form '<algo>:<hash>', but found: %s", wholeInput);
         HashType hashType = parseHashType(*hashTypeRaw);
-        return std::move(hashType);
+        return hashType;
     };
 
     // Switch on prefix
diff --git a/src/libstore/outputs-spec.cc b/src/libstore/outputs-spec.cc
index d943bc111..21c069223 100644
--- a/src/libstore/outputs-spec.cc
+++ b/src/libstore/outputs-spec.cc
@@ -63,7 +63,7 @@ std::optional<std::pair<std::string_view, ExtendedOutputsSpec>> ExtendedOutputsS
     auto specOpt = OutputsSpec::parseOpt(s.substr(found + 1));
     if (!specOpt)
         return std::nullopt;
-    return std::pair { s.substr(0, found), ExtendedOutputsSpec::Explicit { *std::move(specOpt) } };
+    return std::pair { s.substr(0, found), ExtendedOutputsSpec::Explicit { std::move(*specOpt) } };
 }