@@ -3315,7 +3315,7 @@ def check_no_global(self, n: str, ctx: Context,
3315
3315
elif prev_is_overloaded :
3316
3316
self .fail ("Definition of '{}' missing 'overload'" .format (n ), ctx )
3317
3317
else :
3318
- self .name_already_defined (n , ctx )
3318
+ self .name_already_defined (n , ctx , self . globals [ n ] )
3319
3319
3320
3320
def name_not_defined (self , name : str , ctx : Context ) -> None :
3321
3321
message = "Name '{}' is not defined" .format (name )
@@ -3324,8 +3324,12 @@ def name_not_defined(self, name: str, ctx: Context) -> None:
3324
3324
message += ' {}' .format (extra )
3325
3325
self .fail (message , ctx )
3326
3326
3327
- def name_already_defined (self , name : str , ctx : Context ) -> None :
3328
- self .fail ("Name '{}' already defined" .format (name ), ctx )
3327
+ def name_already_defined (self , name : str , ctx : Context , original_ctx : Optional [SymbolTableNode ] = None ) -> None :
3328
+ if original_ctx :
3329
+ extra_msg = ' in line {}' .format (original_ctx .node .get_line ())
3330
+ else :
3331
+ extra_msg = ''
3332
+ self .fail ("Name '{}' already defined{}" .format (name , extra_msg ), ctx )
3329
3333
3330
3334
def fail (self , msg : str , ctx : Context , serious : bool = False , * ,
3331
3335
blocker : bool = False ) -> None :
0 commit comments