Show function names in error messages
Functions in Nix are anonymous, but if they're assigned to a variable/attribute, we can use the variable/attribute name in error messages, e.g. while evaluating `concatMapStrings' at `/nix/var/nix/profiles/per-user/root/channels/nixos/nixpkgs/pkgs/lib/strings.nix:18:25': ...
This commit is contained in:
		
							parent
							
								
									1b3a03f161
								
							
						
					
					
						commit
						18a48d80a0
					
				
					 5 changed files with 43 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -324,4 +324,24 @@ void ExprConcatStrings::bindVars(const StaticEnv & env)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Storing function names. */
 | 
			
		||||
 | 
			
		||||
void Expr::setName(Symbol & name)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void ExprLambda::setName(Symbol & name)
 | 
			
		||||
{
 | 
			
		||||
    this->name = name;
 | 
			
		||||
    body->setName(name);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
string ExprLambda::showNamePos()
 | 
			
		||||
{
 | 
			
		||||
    return (format("%1% at %2%") % (name.set() ? "`" + (string) name + "'" : "an anonymous function") % pos).str();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue