def createOutlineFromCall(self, provider, values): from nuitka.optimizations.FunctionInlining import convertFunctionCallToOutline return convertFunctionCallToOutline( provider = provider, function_ref = self.getFunctionRef(), values = values )
def computeExpression(self, trace_collection): function = self.subnode_function function_body = function.subnode_function_ref.getFunctionBody() if function_body.mayRaiseException(BaseException): trace_collection.onExceptionRaiseExit(BaseException) values = self.subnode_values # Ask for function for its cost. cost = function_body.getFunctionInlineCost(values) if cost is not None and cost < 50: from nuitka.optimizations.FunctionInlining import ( convertFunctionCallToOutline, ) result = convertFunctionCallToOutline( provider=self.getParentVariableProvider(), function_body=function_body, values=values, call_source_ref=self.source_ref, ) return ( result, "new_statements", lambda: "Function call to '%s' in-lined." % function_body. getCodeName(), ) self.variable_closure_traces = [] for closure_variable in function_body.getClosureVariables(): trace = trace_collection.getVariableCurrentTrace(closure_variable) trace.addNameUsage() self.variable_closure_traces.append((closure_variable, trace)) return self, None, None
def createOutlineFromCall(self, provider, values): return convertFunctionCallToOutline(provider=provider, function_ref=self.getFunctionRef(), values=values)
def createOutlineFromCall(self, provider, values): return convertFunctionCallToOutline( provider = provider, function_ref = self.getFunctionRef(), values = values )
def createOutlineFromCall(self, provider, values): from nuitka.optimizations.FunctionInlining import convertFunctionCallToOutline return convertFunctionCallToOutline( provider=provider, function_ref=self.getFunctionRef(), values=values )