* Functions are incomparable.
This commit is contained in:
		
							parent
							
								
									71f026292b
								
							
						
					
					
						commit
						95cc417d76
					
				
					 1 changed files with 13 additions and 6 deletions
				
			
		|  | @ -69,16 +69,17 @@ std::ostream & operator << (std::ostream & str, Value & v) | |||
| string showType(Value & v) | ||||
| { | ||||
|     switch (v.type) { | ||||
|         case tString: return "a string"; | ||||
|         case tPath: return "a path"; | ||||
|         case tNull: return "null"; | ||||
|         case tInt: return "an integer"; | ||||
|         case tBool: return "a boolean"; | ||||
|         case tLambda: return "a function"; | ||||
|         case tString: return "a string"; | ||||
|         case tPath: return "a path"; | ||||
|         case tAttrs: return "an attribute set"; | ||||
|         case tList: return "a list"; | ||||
|         case tNull: return "null"; | ||||
|         case tLambda: return "a function"; | ||||
|         case tPrimOp: return "a built-in function"; | ||||
|         case tPrimOpApp: return "a partially applied built-in function"; | ||||
|         default: throw Error("unknown type"); | ||||
|         default: throw Error(format("unknown type: %1%") % v.type); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  | @ -299,7 +300,7 @@ void EvalState::eval(Env & env, Expr e, Value & v) | |||
|     char x; | ||||
|     if (&x < deepestStack) deepestStack = &x; | ||||
|      | ||||
|     debug(format("eval: %1%") % e); | ||||
|     //debug(format("eval: %1%") % e);
 | ||||
| 
 | ||||
|     nrEvaluated++; | ||||
| 
 | ||||
|  | @ -864,6 +865,12 @@ bool EvalState::eqValues(Value & v1, Value & v2) | |||
|             return true; | ||||
|         } | ||||
| 
 | ||||
|         /* Functions are incomparable. */ | ||||
|         case tLambda: | ||||
|         case tPrimOp: | ||||
|         case tPrimOpApp: | ||||
|             return false; | ||||
| 
 | ||||
|         default: | ||||
|             throw Error(format("cannot compare %1% with %2%") % showType(v1) % showType(v2)); | ||||
|     } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue