code: def visit_Call(self, node):
          
          func_aliases = self.aliases[node.func]
          if len(func_aliases) == 1:
              function_def = next(iter(func_aliases))
              if (isinstance(function_def, ast.FunctionDef) and
                      function_def.name in self.inlinable):
                  self.update = True
                  to_inline = copy.deepcopy(self.inlinable[function_def.name])
                  arg_to_value = dict()
                  values = node.args
                  values += to_inline.args.defaults[len(node.args) -
                                                    len(to_inline.args.args):]
                  for arg_fun, arg_call in zip(to_inline.args.args, values):
                      v_name = "__pythran_inline{}{}{}".format(function_def.name,
                                                               arg_fun.id,
                                                               self.call_count)
                      new_var = ast.Name(id=v_name,
                                         ctx=ast.Store(),
                                         annotation=None)
                      self.defs.append(ast.Assign(targets=[new_var],
                                                  value=arg_call))
                      arg_to_value[arg_fun.id] = ast.Name(id=v_name,
                                                          ctx=ast.Load(),
                                                          annotation=None)
                  self.call_count += 1
                  return Inliner(arg_to_value).visit(to_inline.body[0])
          return node
docs: Replace function call by inlined function's body.
  
          We can inline if it aliases on only one function.