///|
/// The compiler's `wrap_function_call_arguments`.
fn Formatter::wrap_function_call_arguments(
self : Formatter,
arguments : Array[@pretty.Doc],
location : @span.SrcSpan,
) -> @pretty.Doc {
if arguments.is_empty() {
return t("()")
}
let arguments_doc = nest_if_broken(
empty_break + @pretty.join(arguments, comma_break),
)
let comments = self.pop_comments(location.end)
let closing = match printed_comments(comments[:], false) {
None => trailing_comma_break + t(")")
Some(c) =>
@pretty.force_break(
nest(trailing_comma_break) + nest(c) + line_doc + t(")"),
)
}
group(t("(") + arguments_doc + closing)
}
///|
/// The compiler's `wrap_arguments`.
fn Formatter::wrap_arguments(
self : Formatter,
arguments : Array[@pretty.Doc],
comments_limit : Int32,
) -> @pretty.Doc {
if arguments.is_empty() {
let comments = self.pop_comments(comments_limit)
return match printed_comments(comments[:], false) {
Some(c) =>
@pretty.force_break(nest_if_broken(t("(") + empty_break + c)) +
empty_break +
t(")")
None => t("()")
}
}
let doc = open_paren_break + @pretty.join(arguments, comma_break)
let comments = self.pop_comments(comments_limit)
match printed_comments(comments[:], false) {
Some(c) =>
@pretty.force_break(nest_if_broken(doc + trailing_comma_break + c)) +
empty_break +
t(")")
None => nest_if_broken(doc) + trailing_comma_break + t(")")
}
}
///|
/// The compiler's `wrap_arguments_with_spread`.
fn Formatter::wrap_arguments_with_spread(
self : Formatter,
arguments : Array[@pretty.Doc],
comments_limit : Int32,
) -> @pretty.Doc {
if arguments.is_empty() {
return self.wrap_arguments(arguments, comments_limit)
}
let doc = open_paren_break +
@pretty.join(arguments, comma_break) +
comma_break +
t("..")
let comments = self.pop_comments(comments_limit)
match printed_comments(comments[:], false) {
Some(c) =>
@pretty.force_break(nest_if_broken(doc + trailing_comma_break + c)) +
empty_break +
t(")")
None => nest_if_broken(doc) + trailing_comma_break + t(")")
}
}