void print_method(Output& out, const Func* func) { auto const finfo = find_func_info(func); out.fmtln(".method{} {}({}) {{", opt_attrs(AttrContext::Func, func->attrs()), func->name()->data(), func_param_list(finfo)); indented(out, [&] { print_func_directives(out, func); print_func_body(out, finfo); }); out.fmtln("}}"); }
void print_method(Output& out, const Func* func) { auto const finfo = find_func_info(func); out.fmtln(".method{} {}{}({}){}{{", opt_attrs(AttrContext::Func, func->attrs(), &func->userAttributes()), opt_type_info(func->returnUserType(), func->returnTypeConstraint()), func->name(), func_param_list(finfo), func_flag_list(finfo)); indented(out, [&] { print_func_directives(out, finfo); print_func_body(out, finfo); }); out.fmtln("}}"); }
void print_func(Output& out, const Func* func) { auto const finfo = find_func_info(func); if (func->isPseudoMain()) { out.fmtln(".main {{"); } else { out.fmtln(".function {}({}){}{{", func->name()->data(), func_param_list(finfo), func_flag_list(finfo)); } indented(out, [&] { print_func_directives(out, func); print_func_body(out, finfo); }); out.fmtln("}}"); out.nl(); }