Show position info for failing <...> lookups
This commit is contained in:
		
							parent
							
								
									6fec43ccb3
								
							
						
					
					
						commit
						153a943de7
					
				
					 3 changed files with 8 additions and 4 deletions
				
			
		|  | @ -169,7 +169,7 @@ public: | ||||||
| 
 | 
 | ||||||
|     /* Look up a file in the search path. */ |     /* Look up a file in the search path. */ | ||||||
|     Path findFile(const string & path); |     Path findFile(const string & path); | ||||||
|     Path findFile(SearchPath & searchPath, const string & path); |     Path findFile(SearchPath & searchPath, const string & path, const Pos & pos = noPos); | ||||||
| 
 | 
 | ||||||
|     /* Evaluate an expression to normal form, storing the result in
 |     /* Evaluate an expression to normal form, storing the result in
 | ||||||
|        value `v'. */ |        value `v'. */ | ||||||
|  |  | ||||||
|  | @ -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) { |     foreach (SearchPath::iterator, i, searchPath) { | ||||||
|         Path res; |         Path res; | ||||||
|  | @ -641,7 +641,11 @@ Path EvalState::findFile(SearchPath & searchPath, const string & path) | ||||||
|         } |         } | ||||||
|         if (pathExists(res)) return canonPath(res); |         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); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -775,7 +775,7 @@ static void prim_findFile(EvalState & state, const Pos & pos, Value * * args, Va | ||||||
|             % path % e.path % pos); |             % path % e.path % pos); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     mkPath(v, state.findFile(searchPath, path).c_str()); |     mkPath(v, state.findFile(searchPath, path, pos).c_str()); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* Read a directory (without . or ..) */ | /* Read a directory (without . or ..) */ | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue