Return None when there are comments around trait bounds
@@ -942,6 +942,15 @@ pub fn format_trait(context: &RewriteContext, item: &ast::Item, offset: Indent)
rewrite_generics(context, generics, shape, mk_sp(item.span.lo(), body_lo))?;
result.push_str(&generics_str);
+ // FIXME(#2055): rustfmt fails to format when there are comments between trait bounds.
+ if !type_param_bounds.is_empty() {
+ let ident_hi = context.codemap.span_after(item.span, &format!("{}", item.ident));
+ let bound_hi = type_param_bounds.last().unwrap().span().hi();
+ let snippet = context.snippet(mk_sp(ident_hi, bound_hi));
+ if contains_comment(&snippet) {
+ return None;
+ }
+ }
let trait_bound_str = rewrite_trait_bounds(
context,
type_param_bounds,
