Use multispan suggestions more often
* Use more accurate span for `async move` suggestion * Use more accurate span for deref suggestion * Use `multipart_suggestion` more often
This commit is contained in:
parent
5fb3394cbd
commit
0b8f192cfe
61 changed files with 661 additions and 442 deletions
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue