@@ -463,30 +463,38 @@ def complex_resolver(s: sym.Symbol) -> sym.Symbol:
463
463
464
464
465
465
def test_syntax_quote_gensym ():
466
- gensym = read_str_first ("`s#" )
466
+ resolver = lambda s : sym .symbol (s .name , ns = 'test-ns' )
467
+
468
+ gensym = read_str_first ("`s#" , resolver = resolver )
467
469
assert isinstance (gensym , llist .List )
468
470
assert gensym .first == reader ._QUOTE
469
471
genned_sym : sym .Symbol = gensym [1 ]
470
472
assert genned_sym .name .startswith ("s_" )
471
473
472
474
# Verify that identical gensym forms resolve to the same
473
475
# symbol inside the same syntax quote expansion
474
- multisym = read_str_first ("`(s1# s2# s1#)" )[1 ].rest
476
+ multisym = read_str_first ("`(s1# s2# s1#)" , resolver = resolver )[1 ].rest
475
477
476
478
multisym1 = multisym [0 ][1 ]
477
479
assert reader ._QUOTE == multisym1 [0 ]
478
480
genned_sym1 : sym .Symbol = multisym1 [1 ]
481
+ assert genned_sym1 .ns is None
479
482
assert genned_sym1 .name .startswith ("s1_" )
483
+ assert "#" not in genned_sym1 .name
480
484
481
485
multisym2 = multisym [1 ][1 ]
482
486
assert reader ._QUOTE == multisym2 [0 ]
483
487
genned_sym2 : sym .Symbol = multisym2 [1 ]
488
+ assert genned_sym2 .ns is None
484
489
assert genned_sym2 .name .startswith ("s2_" )
490
+ assert "#" not in genned_sym2 .name
485
491
486
492
multisym3 = multisym [2 ][1 ]
487
493
assert reader ._QUOTE == multisym3 [0 ]
488
494
genned_sym3 : sym .Symbol = multisym3 [1 ]
495
+ assert genned_sym3 .ns is None
489
496
assert genned_sym3 .name .startswith ("s1_" )
497
+ assert "#" not in genned_sym3 .name
490
498
491
499
assert genned_sym1 == genned_sym3
492
500
assert genned_sym1 != genned_sym2
0 commit comments