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. */ | ||||
|     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
 | ||||
|        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) { | ||||
|         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); | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -775,7 +775,7 @@ static void prim_findFile(EvalState & state, const Pos & pos, Value * * args, Va | |||
|             % 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 ..) */ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue