about summary refs log tree commit diff
path: root/src/libexpr/parser.y
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2015-01-07T12·43+0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2015-01-07T12·43+0100
commit153a943de7c333470e2b7338a8edae4a8ae52181 (patch)
treee5371991d49910300e704e2309c29b1b72da94a7 /src/libexpr/parser.y
parent6fec43ccb3ebaa979c95143ee49c857d22ac4abf (diff)
Show position info for failing <...> lookups
Diffstat (limited to 'src/libexpr/parser.y')
-rw-r--r--src/libexpr/parser.y8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y
index ff174815e7..7d877cd678 100644
--- a/src/libexpr/parser.y
+++ b/src/libexpr/parser.y
@@ -626,7 +626,7 @@ Path EvalState::findFile(const string & path)
 }
 
 
-Path EvalState::findFile(SearchPath & searchPath, const string & path)
+Path EvalState::findFile(SearchPath & searchPath, const string & path, const Pos & pos)
 {
     foreach (SearchPath::iterator, i, searchPath) {
         Path res;
@@ -641,7 +641,11 @@ Path EvalState::findFile(SearchPath & searchPath, const string & path)
         }
         if (pathExists(res)) return canonPath(res);
     }
-    throw ThrownError(format("file ‘%1%’ was not found in the Nix search path (add it using $NIX_PATH or -I)") % path);
+    format f = format(
+        "file ‘%1%’ was not found in the Nix search path (add it using $NIX_PATH or -I)"
+        + string(pos ? ", at %2%" : ""));
+    f.exceptions(boost::io::all_error_bits ^ boost::io::too_many_args_bit);
+    throw ThrownError(f % path % pos);
 }