* 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 `~'. */ | /* Common implementation of `+', ConcatStrings and `~'. */ | ||||||
| static ATerm concatStrings(EvalState & state, const ATermVector & args, | static ATerm concatStrings(EvalState & state, ATermVector & args, | ||||||
|     string separator = "") |     string separator = "") | ||||||
| { | { | ||||||
|  |     if (args.empty()) return makeStr("", PathSet()); | ||||||
|  |      | ||||||
|     PathSet context; |     PathSet context; | ||||||
|     std::ostringstream s; |     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 |        paths are copied when they are used in a derivation), and none | ||||||
|        of the strings are allowed to have contexts. */ |        of the strings are allowed to have contexts. */ | ||||||
|     ATerm dummy; |     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) { |     for (ATermVector::const_iterator i = args.begin(); i != args.end(); ++i) { | ||||||
|         if (i != args.begin()) s << separator; |         if (i != args.begin()) s << separator; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue