@@ -380,15 +380,15 @@ def _expressionize(body: MixedNodeStream,
380
380
returns = None )
381
381
382
382
383
- _KW_ALIAS = 'kw'
384
- _LIST_ALIAS = 'llist'
385
- _MAP_ALIAS = 'lmap'
386
- _RUNTIME_ALIAS = 'runtime'
387
- _SET_ALIAS = 'lset'
388
- _SYM_ALIAS = 'sym'
389
- _VEC_ALIAS = 'vec'
390
- _VAR_ALIAS = 'Var'
391
- _UTIL_ALIAS = 'langutil'
383
+ _KW_ALIAS = genname ( 'kw' )
384
+ _LIST_ALIAS = genname ( 'llist' )
385
+ _MAP_ALIAS = genname ( 'lmap' )
386
+ _RUNTIME_ALIAS = genname ( 'runtime' )
387
+ _SET_ALIAS = genname ( 'lset' )
388
+ _SYM_ALIAS = genname ( 'sym' )
389
+ _VEC_ALIAS = genname ( 'vec' )
390
+ _VAR_ALIAS = genname ( 'Var' )
391
+ _UTIL_ALIAS = genname ( 'langutil' )
392
392
_NS_VAR_VALUE = f'{ _NS_VAR } .value'
393
393
394
394
_NS_VAR_NAME = _load_attr (f'{ _NS_VAR_VALUE } .name' )
@@ -477,6 +477,12 @@ def _def_ast(ctx: CompilerContext, form: llist.List) -> ASTStream:
477
477
478
478
yield from meta_nodes
479
479
yield from def_nodes
480
+
481
+ # TODO: log this out, rather than emitting as a warning
482
+ # https://github.com/chrisrink10/basilisp/issues/121
483
+ if safe_name in ctx .current_ns .module .__dict__ :
484
+ print (f"WARNING: redefining local Python name '{ safe_name } ' in module '{ ctx .current_ns .module .__name__ } '" )
485
+
480
486
yield _dependency (ast .Assign (targets = [ast .Name (id = safe_name , ctx = ast .Store ())],
481
487
value = Maybe (def_value ).map (_unwrap_node ).or_else_get (ast .NameConstant (None ))))
482
488
yield _node (ast .Call (
@@ -1671,7 +1677,7 @@ def _from_module_import() -> ast.ImportFrom:
1671
1677
language support modules."""
1672
1678
return ast .ImportFrom (
1673
1679
module = 'basilisp.lang.runtime' ,
1674
- names = [ast .alias (name = 'Var' , asname = None )],
1680
+ names = [ast .alias (name = 'Var' , asname = _VAR_ALIAS )],
1675
1681
level = 0 )
1676
1682
1677
1683
0 commit comments