#NEWLINE# def combine( self , other ) : #NEWLINE# #INDENT# if ( self == other ) : #NEWLINE# #INDENT# return self #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if isinstance ( other , ScalarT ) : #NEWLINE# #INDENT# elt_t = self . elt_type #NEWLINE# combined_elt_t = elt_t . combine ( other ) #NEWLINE# return make_array_type ( combined_elt_t , self . rank ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( other . __class__ is ArrayT ) : #NEWLINE# #INDENT# assert ( self . rank == other . rank ) #NEWLINE# combined_elt_t = self . elt_type . combine ( other . elt_type ) #NEWLINE# return make_array_type ( combined_elt_t , self . rank ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# raise IncompatibleTypes ( self , other )