@@ -130,15 +130,16 @@ class MultiArityFn(BaseCode):
130130 def type (self ):
131131 return MultiArityFn ._type
132132
133- def __init__ (self , arities , required_arity = 0 , rest_fn = None , meta = nil ):
133+ def __init__ (self , name , arities , required_arity = 0 , rest_fn = None , meta = nil ):
134134 BaseCode .__init__ (self )
135+ self ._name = name
135136 self ._arities = arities
136137 self ._required_arity = required_arity
137138 self ._rest_fn = rest_fn
138139 self ._meta = meta
139140
140141 def with_meta (self , meta ):
141- return MultiArityFn (self ._arities , self ._required_arity , self ._rest_fn , meta )
142+ return MultiArityFn (self ._name , self . _arities , self ._required_arity , self ._rest_fn , meta )
142143
143144 @elidable_promote ()
144145 def get_fn (self , arity ):
@@ -155,7 +156,7 @@ def get_fn(self, arity):
155156 if self ._rest_fn :
156157 acc .append (u" or more" )
157158
158- affirm ( False , u"Wrong number of args to fn: got " + unicode (str (arity )) + u" expected " + u"," .join (acc ))
159+ runtime_error ( u"Wrong number of args to fn " + unicode ( self . _name ) + " got " + unicode (str (arity )) + u" expected " + u"," .join (acc ))
159160
160161 def invoke (self , args ):
161162 return self .invoke_with (args , self )
@@ -212,7 +213,7 @@ def invoke(self, args):
212213 if len (args ) == self .get_arity ():
213214 return self .invoke_with (args , self )
214215 else :
215- runtime_error (u"Invalid number of arguments " + unicode (len (args ))
216+ runtime_error (u"Invalid number of arguments " + unicode (str ( len (args ) ))
216217 + u" for function '" + unicode (str (self ._name )) + u"'. Expected "
217218 + unicode (str (self .get_arity ())))
218219
0 commit comments