#NEWLINE# def _set_type( self , other_type = ANY_TYPE , signature = None ) : #NEWLINE# #INDENT# ':see Expression._set_type()' #NEWLINE# assert isinstance ( other_type , Type ) #NEWLINE# if ( signature is None ) : #NEWLINE# #INDENT# signature = defaultdict ( list ) #NEWLINE# #UNINDENT# resolution = other_type #NEWLINE# for varEx in signature [ self . variable . name ] : #NEWLINE# #INDENT# resolution = varEx . type . resolve ( resolution ) #NEWLINE# if ( not resolution ) : #NEWLINE# #INDENT# raise InconsistentTypeHierarchyException ( self ) #NEWLINE# #UNINDENT# #UNINDENT# signature [ self . variable . name ] . append ( self ) #NEWLINE# for varEx in signature [ self . variable . name ] : #NEWLINE# #INDENT# varEx . type = resolution