1
Fork 0

Auto merge of #86754 - estebank:use-multispans-more, r=varkor

Use `multipart_suggestions` more

Built on top of #86532
This commit is contained in:
bors 2021-07-30 23:18:12 +00:00
commit 199d1aebe4
61 changed files with 661 additions and 442 deletions

View file

@ -1770,7 +1770,7 @@ impl<'a> Parser<'a> {
let mut err = self.struct_span_err(span, &msg);
let sp = self.sess.source_map().start_point(self.token.span);
if let Some(sp) = self.sess.ambiguous_block_expr_parse.borrow().get(&sp) {
self.sess.expr_parentheses_needed(&mut err, *sp, None);
self.sess.expr_parentheses_needed(&mut err, *sp);
}
err.span_label(span, "expected expression");
err

View file

@ -358,7 +358,7 @@ impl<'a> Parser<'a> {
&format!("expected expression, found `{}`", pprust::token_to_string(&self.token),),
);
err.span_label(self.token.span, "expected expression");
self.sess.expr_parentheses_needed(&mut err, lhs.span, Some(pprust::expr_to_string(&lhs)));
self.sess.expr_parentheses_needed(&mut err, lhs.span);
err.emit();
}
@ -696,20 +696,18 @@ impl<'a> Parser<'a> {
let expr =
mk_expr(self, lhs, self.mk_ty(path.span, TyKind::Path(None, path)));
let expr_str = self
.span_to_snippet(expr.span)
.unwrap_or_else(|_| pprust::expr_to_string(&expr));
self.struct_span_err(self.token.span, &msg)
.span_label(
self.look_ahead(1, |t| t.span).to(span_after_type),
"interpreted as generic arguments",
)
.span_label(self.token.span, format!("not interpreted as {}", op_noun))
.span_suggestion(
expr.span,
.multipart_suggestion(
&format!("try {} the cast value", op_verb),
format!("({})", expr_str),
vec![
(expr.span.shrink_to_lo(), "(".to_string()),
(expr.span.shrink_to_hi(), ")".to_string()),
],
Applicability::MachineApplicable,
)
.emit();

View file

@ -763,7 +763,7 @@ impl<'a> Parser<'a> {
let sp = self.sess.source_map().start_point(self.token.span);
if let Some(sp) = self.sess.ambiguous_block_expr_parse.borrow().get(&sp) {
self.sess.expr_parentheses_needed(&mut err, *sp, None);
self.sess.expr_parentheses_needed(&mut err, *sp);
}
Err(err)