diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2020-05-30 01:16:53 +0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2020-05-30 01:16:53 +0200 |
commit | 89e0b3e2d62f72e48bdda63b77a086c69b314113 (patch) | |
tree | 57ee457cfb14b20ac9f2754b39c682ead7bb68b9 /src/libexpr/primops | |
parent | 0e7f77a59a90d8cdb9560feeff4f3a48ab888843 (diff) |
Move substitution into Input::fetch()
Closes #3520.
Diffstat (limited to 'src/libexpr/primops')
-rw-r--r-- | src/libexpr/primops/fetchTree.cc | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/src/libexpr/primops/fetchTree.cc b/src/libexpr/primops/fetchTree.cc index a1ad0a7b9..28f9cdb31 100644 --- a/src/libexpr/primops/fetchTree.cc +++ b/src/libexpr/primops/fetchTree.cc @@ -88,31 +88,6 @@ static void prim_fetchTree(EvalState & state, const Pos & pos, Value * * args, V if (evalSettings.pureEval && !input.isImmutable()) throw Error("in pure evaluation mode, 'fetchTree' requires an immutable input, at %s", pos); - /* The tree may already be in the Nix store, or it could be - substituted (which is often faster than fetching from the - original source). So check that. */ - if (input.hasAllInfo()) { - auto storePath = input.computeStorePath(*state.store); - - try { - state.store->ensurePath(storePath); - - debug("using substituted/cached input '%s' in '%s'", - input.to_string(), state.store->printStorePath(storePath)); - - auto actualPath = state.store->toRealPath(storePath); - - if (state.allowedPaths) - state.allowedPaths->insert(actualPath); - - emitTreeAttrs(state, fetchers::Tree { .actualPath = actualPath, .storePath = std::move(storePath) }, input, v); - - return; - } catch (Error & e) { - debug("substitution of input '%s' failed: %s", input.to_string(), e.what()); - } - } - auto [tree, input2] = input.fetch(state.store); if (state.allowedPaths) |