* Fix the ~ operator.
This commit is contained in:
		
							parent
							
								
									1f6616dabf
								
							
						
					
					
						commit
						2132d9ddeb
					
				
					 4 changed files with 24 additions and 3 deletions
				
			
		|  | @ -321,7 +321,6 @@ Expr evalExpr2(EvalState & state, Expr e) | |||
|     /* Normal forms. */ | ||||
|     if (sym == symStr || | ||||
|         sym == symPath || | ||||
|         sym == symSubPath || /* !!! evaluate */ | ||||
|         sym == symUri || | ||||
|         sym == symNull || | ||||
|         sym == symInt || | ||||
|  | @ -503,7 +502,7 @@ Expr evalExpr2(EvalState & state, Expr e) | |||
|     } | ||||
| 
 | ||||
|     /* String or path concatenation. */ | ||||
|     ATermList es; | ||||
|     ATermList es = ATempty; | ||||
|     if (matchOpPlus(e, e1, e2) || matchConcatStrings(e, es)) { | ||||
|         ATermVector args; | ||||
|         if (matchOpPlus(e, e1, e2)) { | ||||
|  | @ -520,6 +519,17 @@ Expr evalExpr2(EvalState & state, Expr e) | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /* Backwards compatability: subpath operator (~). */ | ||||
|     if (matchSubPath(e, e1, e2)) { | ||||
|         static bool haveWarned; | ||||
|         warnOnce(haveWarned, "the subpath operator (~) is deprecated, use string concatenation (+) instead"); | ||||
|         ATermList context = ATempty; | ||||
|         bool dummy; | ||||
|         string s1 = coerceToStringWithContext(state, context, e1, dummy); | ||||
|         string s2 = coerceToStringWithContext(state, context, e2, dummy); | ||||
|         return wrapInContext(context, makePath(toATerm(canonPath(s1 + "/" + s2)))); | ||||
|     } | ||||
| 
 | ||||
|     /* List concatenation. */ | ||||
|     if (matchOpConcat(e, e1, e2)) { | ||||
|         try { | ||||
|  |  | |||
|  | @ -163,7 +163,7 @@ void toString(EvalState & state, Expr e, | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     else throw TypeError(format("%1% is not allowed as a derivation argument") % showType(e)); | ||||
|     else throw TypeError(format("cannot convert %1% to a string") % showType(e)); | ||||
|      | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue