#NEWLINE# def visit_Assign( self , node ) : #NEWLINE# #INDENT# if ( node . ref in self . locals ) : #NEWLINE# #INDENT# name = node . ref #NEWLINE# var = self . locals [ name ] #NEWLINE# val = self . visit ( node . val ) #NEWLINE# self . builder . store ( val , var ) #NEWLINE# self . locals [ name ] = var #NEWLINE# return var #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# name = node . ref #NEWLINE# val = self . visit ( node . val ) #NEWLINE# ty = self . specialize ( node ) #NEWLINE# var = self . builder . alloca ( ty , name = name ) #NEWLINE# self . builder . store ( val , var ) #NEWLINE# self . locals [ name ] = var #NEWLINE# return var