* Do the path check on the normal form.
This commit is contained in:
		
							parent
							
								
									46b631b6c4
								
							
						
					
					
						commit
						7de5fe2fc2
					
				
					 1 changed files with 5 additions and 2 deletions
				
			
		|  | @ -294,9 +294,11 @@ string coerceToString(EvalState & state, Expr e, PathSet & context, | |||
| 
 | ||||
| 
 | ||||
| /* Common implementation of `+', ConcatStrings and `~'. */ | ||||
| static ATerm concatStrings(EvalState & state, const ATermVector & args, | ||||
| static ATerm concatStrings(EvalState & state, ATermVector & args, | ||||
|     string separator = "") | ||||
| { | ||||
|     if (args.empty()) return makeStr("", PathSet()); | ||||
|      | ||||
|     PathSet context; | ||||
|     std::ostringstream s; | ||||
| 
 | ||||
|  | @ -305,7 +307,8 @@ static ATerm concatStrings(EvalState & state, const ATermVector & args, | |||
|        paths are copied when they are used in a derivation), and none | ||||
|        of the strings are allowed to have contexts. */ | ||||
|     ATerm dummy; | ||||
|     bool isPath = !args.empty() && matchPath(args.front(), dummy); | ||||
|     args.front() = evalExpr(state, args.front()); | ||||
|     bool isPath = matchPath(args.front(), dummy); | ||||
| 
 | ||||
|     for (ATermVector::const_iterator i = args.begin(); i != args.end(); ++i) { | ||||
|         if (i != args.begin()) s << separator; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue