)
}
-
// Statements of the form
// let pat: ty = init;
impl Rewrite for ast::Local {
false,
last_line_width(&ref_and_type) == 1,
where_span_end,
- item.span,
self_ty.span.hi,
));
false,
trait_bound_str.is_empty() && last_line_width(&generics_str) == 1,
None,
- item.span,
pos_before_where,
));
// If the where clause cannot fit on the same line,
true,
false,
None,
- span,
body_hi,
))
}
true,
true,
Some(span.hi),
- span,
generics.span.hi,
));
result.push_str(&where_clause_str);
force_new_line_for_brace = true;
}
}
- } else {
- // FIXME it would be nice to catch comments between the return type
- // and the where clause, but we don't have a span for the where
- // clause.
}
}
!has_braces,
put_args_in_block && ret_str.is_empty(),
Some(span.hi),
- span,
pos_before_where,
) {
if !where_clause_str.contains('\n') {
!has_braces,
put_args_in_block && ret_str.is_empty(),
Some(span.hi),
- span,
pos_before_where,
));
// where clause can be kept on the current line.
snuggle: bool,
span_end: Option<BytePos>,
- span: Span,
span_end_before_where: BytePos,
) -> Option<String> {
let block_shape = shape.block().with_max_width(context.config);
let (span_before, span_after) =
- missing_span_before_after_where(context, span.hi, span_end_before_where, where_clause);
+ missing_span_before_after_where(span_end_before_where, where_clause);
let (comment_before, comment_after) = try_opt!(rewrite_comments_before_after_where(
context,
span_before,
suppress_comma: bool,
snuggle: bool,
span_end: Option<BytePos>,
- span: Span,
span_end_before_where: BytePos,
) -> Option<String> {
if where_clause.predicates.is_empty() {
suppress_comma,
snuggle,
span_end,
- span,
span_end_before_where,
);
}
}
fn missing_span_before_after_where(
- context: &RewriteContext,
- item_end: BytePos,
before_item_span_end: BytePos,
where_clause: &ast::WhereClause,
) -> (Span, Span) {
- let snippet = context.snippet(mk_sp(before_item_span_end, item_end));
- let pos_before_where =
- before_item_span_end + BytePos(snippet.find_uncommented("where").unwrap() as u32);
- let missing_span_before = mk_sp(before_item_span_end, pos_before_where);
+ let missing_span_before = mk_sp(before_item_span_end, where_clause.span.lo);
// 5 = `where`
- let pos_after_where = pos_before_where + BytePos(5);
+ let pos_after_where = where_clause.span.lo + BytePos(5);
let missing_span_after = mk_sp(pos_after_where, where_clause.predicates[0].span().lo);
(missing_span_before, missing_span_after)
}
false,
trimmed_last_line_width(&result) == 1,
Some(span.hi),
- span,
generics.span.hi,
));
result.push_str(&where_clause_str);