def visit_function_inline(self, node):
<EOL>func_visitor = block.FunctionBlockVisitor(node)<EOL>for child in node.body:<EOL><INDENT>func_visitor.visit(child)<EOL><DEDENT>func_block = block.FunctionBlock(self.block, node.name, func_visitor.vars,<EOL>func_visitor.is_generator)<EOL>visitor = StatementVisitor(func_block, self.future_node)<EOL>with visitor.writer.indent_block():<EOL><INDENT>visitor._visit_each(node.body)  <EOL><DEDENT>result = self.block.alloc_temp()<EOL>with self.block.alloc_temp('<STR_LIT>') as func_args:<EOL><INDENT>args = node.args<EOL>argc = len(args.args)<EOL>self.writer.write('<STR_LIT>'.format(<EOL>func_args.expr, argc))<EOL>defaults = [None] * (argc - len(args.defaults)) + args.defaults<EOL>for i, (a, d) in enumerate(zip(args.args, defaults)):<EOL><INDENT>with self.visit_expr(d) if d else expr.nil_expr as default:<EOL><INDENT>tmpl = '<STR_LIT>'<EOL>self.writer.write_tmpl(tmpl, args=func_args.expr, i=i,<EOL>name=util.go_str(a.arg), default=default.expr)<EOL><DEDENT><DEDENT>flags = []<EOL>if args.vararg:<EOL><INDENT>flags.append('<STR_LIT>')<EOL><DEDENT>if args.kwarg:<EOL><INDENT>flags.append('<STR_LIT>')<EOL><DEDENT>self.writer.write_tmpl(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>',<EOL>result=result.name, name=util.go_str(node.name),<EOL>filename=util.go_str(self.block.root.filename), args=func_args.expr,<EOL>flags='<STR_LIT>'.join(flags) if flags else <NUM_LIT:0>)<EOL>with self.writer.indent_block():<EOL><INDENT>for var in func_block.vars.values():<EOL><INDENT>if var.type != block.Var.TYPE_GLOBAL:<EOL><INDENT>fmt = '<STR_LIT>'<EOL>self.writer.write(fmt.format(<EOL>util.adjust_local_name(var.name), var.init_expr))<EOL><DEDENT><DEDENT>self.writer.write_temp_decls(func_block)<EOL>self.writer.write('<STR_LIT>')<EOL>self.writer.write('<STR_LIT>')<EOL>if func_block.is_generator:<EOL><INDENT>self.writer.write(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>')<EOL>with self.writer.indent_block():<EOL><INDENT>self.writer.write_block(func_block, visitor.writer.getvalue())<EOL>self.writer.write('<STR_LIT>')<EOL><DEDENT>self.writer.write('<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>self.writer.write_block(func_block, visitor.writer.getvalue())<EOL>self.writer.write(textwrap.dedent("""<STR_LIT>"""))<EOL><DEDENT><DEDENT>self.writer.write('<STR_LIT>')<EOL><DEDENT>return result<EOL>
Returns an GeneratedExpr for a function with the given body.