mirror of https://github.com/rust-lang/rust.git
Reorder type mismatch suggestions
Suggestions are reordered to to make sure potential missing expect on Option/Result runs before the suggestion to remove the last method call
This commit is contained in:
parent
d1611e39c4
commit
1854776fa9
|
@ -43,6 +43,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||
|
||||
// Use `||` to give these suggestions a precedence
|
||||
let suggested = self.suggest_missing_parentheses(err, expr)
|
||||
|| self.suggest_missing_unwrap_expect(err, expr, expected, expr_ty)
|
||||
|| self.suggest_remove_last_method_call(err, expr, expected)
|
||||
|| self.suggest_associated_const(err, expr, expected)
|
||||
|| self.suggest_deref_ref_or_into(err, expr, expected, expr_ty, expected_ty_expr)
|
||||
|
@ -58,8 +59,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
|
|||
|| self.suggest_into(err, expr, expr_ty, expected)
|
||||
|| self.suggest_floating_point_literal(err, expr, expected)
|
||||
|| self.suggest_null_ptr_for_literal_zero_given_to_ptr_arg(err, expr, expected)
|
||||
|| self.suggest_coercing_result_via_try_operator(err, expr, expected, expr_ty)
|
||||
|| self.suggest_missing_unwrap_expect(err, expr, expected, expr_ty);
|
||||
|| self.suggest_coercing_result_via_try_operator(err, expr, expected, expr_ty);
|
||||
|
||||
if !suggested {
|
||||
self.note_source_of_type_mismatch_constraint(
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
fn main() {
|
||||
let abs: i32 = 3i32.checked_abs();
|
||||
//~^ ERROR mismatched types
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-117669.rs:2:20
|
||||
|
|
||||
LL | let abs: i32 = 3i32.checked_abs();
|
||||
| --- ^^^^^^^^^^^^^^^^^^ expected `i32`, found `Option<i32>`
|
||||
| |
|
||||
| expected due to this
|
||||
|
|
||||
= note: expected type `i32`
|
||||
found enum `Option<i32>`
|
||||
help: consider using `Option::expect` to unwrap the `Option<i32>` value, panicking if the value is an `Option::None`
|
||||
|
|
||||
LL | let abs: i32 = 3i32.checked_abs().expect("REASON");
|
||||
| +++++++++++++++++
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0308`.
|
Loading…
Reference in New Issue