#NEWLINE# def transform_standard_method_call( self , node , in_block = False , assignment = None ) : #NEWLINE# #INDENT# l = node . receiver . pseudo_type #NEWLINE# if isinstance ( l , list ) : #NEWLINE# #INDENT# l = l [ 0 ] #NEWLINE# #UNINDENT# node . args = [ self . transform ( arg ) for arg in node . args ] #NEWLINE# node . receiver = self . transform ( node . receiver ) #NEWLINE# if ( l not in self . methods ) : #NEWLINE# #INDENT# raise PseudoStandardLibraryError ( ( "%s doesn't recognize %s as a standard type" % ( type ( self ) . __name__ , l ) ) ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if ( node . message not in self . methods [ l ] ) : #NEWLINE# #INDENT# raise PseudoStandardLibraryError ( ( "%s doesn't have a %s#%s method" % ( type ( self ) . __name__ , l , node . message ) ) ) #NEWLINE# #UNINDENT# #UNINDENT# x = self . methods [ l ] [ node . message ] #NEWLINE# if ( isinstance ( x , type ) and issubclass ( x , LeakingNode ) ) : #NEWLINE# #INDENT# if in_block : #NEWLINE# #INDENT# args = [ 'block' ] #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# if assignment : #NEWLINE# #INDENT# args = [ 'assignment' , assignment . target ] #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# args = [ 'expression' ] #NEWLINE# #UNINDENT# #UNINDENT# result = self . leaking ( x , l , node . message , node , * args ) #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# result = self . _expand_api ( x , node . receiver , node . args , node . pseudo_type , self . methods [ l ] [ '@equivalent' ] ) #NEWLINE# #UNINDENT# self . update_dependencies ( l , node . message , [ a . pseudo_type for a in node . args ] ) #NEWLINE# return result