@@ -197,35 +197,41 @@ def test_do(ns: runtime.Namespace):
197
197
198
198
199
199
def test_single_arity_fn (ns : runtime .Namespace ):
200
+ code = """
201
+ (def empty-single (fn* empty-single []))
202
+ """
203
+ ns_name = ns .name
204
+ fvar = lcompile (code )
205
+ assert Var .find_in_ns (sym .symbol (ns_name ), sym .symbol ('empty-single' )) == fvar
206
+ assert callable (fvar .value )
207
+ assert None is fvar .value ()
208
+
200
209
code = """
201
210
(def string-upper (fn* string-upper [s] (.upper s)))
202
211
"""
203
212
ns_name = ns .name
204
213
fvar = lcompile (code )
205
- assert fvar == Var .find_in_ns (
206
- sym .symbol (ns_name ), sym .symbol ('string-upper' ))
214
+ assert Var .find_in_ns (sym .symbol (ns_name ), sym .symbol ('string-upper' )) == fvar
207
215
assert callable (fvar .value )
208
- assert fvar . value ( "lower" ) == "LOWER"
216
+ assert "LOWER" == fvar . value ( "lower" )
209
217
210
218
code = """
211
219
(def string-upper (fn* string-upper ([s] (.upper s))))
212
220
"""
213
221
ns_name = ns .name
214
222
fvar = lcompile (code )
215
- assert fvar == Var .find_in_ns (
216
- sym .symbol (ns_name ), sym .symbol ('string-upper' ))
223
+ assert Var .find_in_ns (sym .symbol (ns_name ), sym .symbol ('string-upper' )) == fvar
217
224
assert callable (fvar .value )
218
- assert fvar . value ( "lower" ) == "LOWER"
225
+ assert "LOWER" == fvar . value ( "lower" )
219
226
220
227
code = """
221
228
(def string-lower #(.lower %))
222
229
"""
223
230
ns_name = ns .name
224
231
fvar = lcompile (code )
225
- assert fvar == Var .find_in_ns (
226
- sym .symbol (ns_name ), sym .symbol ('string-lower' ))
232
+ assert Var .find_in_ns (sym .symbol (ns_name ), sym .symbol ('string-lower' )) == fvar
227
233
assert callable (fvar .value )
228
- assert fvar . value ( "UPPER" ) == "upper"
234
+ assert "upper" == fvar . value ( "UPPER" )
229
235
230
236
231
237
def test_multi_arity_fn (ns : runtime .Namespace ):
@@ -256,6 +262,19 @@ def test_multi_arity_fn(ns: runtime.Namespace):
256
262
([& args] (concat [:rest-params] args))))
257
263
""" )
258
264
265
+ code = """
266
+ (def empty-multi-fn
267
+ (fn* empty-multi-fn
268
+ ([])
269
+ ([s])))
270
+ """
271
+ ns_name = ns .name
272
+ fvar = lcompile (code )
273
+ assert Var .find_in_ns (sym .symbol (ns_name ), sym .symbol ('empty-multi-fn' )) == fvar
274
+ assert callable (fvar .value )
275
+ assert None is fvar .value ()
276
+ assert None is fvar .value ('STRING' )
277
+
259
278
code = """
260
279
(def multi-fn
261
280
(fn* multi-fn
0 commit comments