Skip to content

Commit

Permalink
Change how the fn params span is calculated
Browse files Browse the repository at this point in the history
Use the available Generics span field to avoid issues with `T: Fn()` bounds.

This is necessary to land #85346.
  • Loading branch information
estebank committed Nov 24, 2021
1 parent 7190bc3 commit d86aff8
Showing 1 changed file with 2 additions and 10 deletions.
12 changes: 2 additions & 10 deletions src/tools/rustfmt/src/items.rs
Expand Up @@ -2236,26 +2236,18 @@ fn rewrite_fn_base(
result.push_str(&param_indent.to_string_with_newline(context.config));
}

// Skip `pub(crate)`.
let lo_after_visibility = get_bytepos_after_visibility(fn_sig.visibility, span);
// A conservative estimation, the goal is to be over all parens in generics
let params_start = fn_sig
.generics
.params
.last()
.map_or(lo_after_visibility, |param| param.span().hi());
let params_end = if fd.inputs.is_empty() {
context
.snippet_provider
.span_after(mk_sp(params_start, span.hi()), ")")
.span_after(mk_sp(fn_sig.generics.span.hi(), span.hi()), ")")
} else {
let last_span = mk_sp(fd.inputs[fd.inputs.len() - 1].span().hi(), span.hi());
context.snippet_provider.span_after(last_span, ")")
};
let params_span = mk_sp(
context
.snippet_provider
.span_after(mk_sp(params_start, span.hi()), "("),
.span_after(mk_sp(fn_sig.generics.span.hi(), span.hi()), "("),
params_end,
);
let param_str = rewrite_params(
Expand Down

0 comments on commit d86aff8

Please sign in to comment.