);
let mut err = self.struct_span_err(span, &msg);
let suggestion = "try surrounding the expression in parentheses";
- if let Ok(expr_str) = expr_str {
- err.span_suggestion(
- span,
- suggestion,
- format!("({})", expr_str),
- Applicability::MachineApplicable,
- )
+ // if type ascription is "likely an error", the user will already be getting a useful
+ // help message, and doesn't need a second.
+ if self.last_type_ascription.map_or(false, |last_ascription| last_ascription.1) {
+ self.maybe_annotate_with_ascription(&mut err, false);
} else {
- err.span_help(span, suggestion)
+ if let Ok(expr_str) = expr_str {
+ err.span_suggestion(
+ span,
+ suggestion,
+ format!("({})", expr_str),
+ Applicability::MachineApplicable,
+ );
+ } else {
+ err.span_help(span, suggestion);
+ }
}
- .emit();
+ err.emit();
};
Ok(with_postfix)
}