From 8568f44fe172b0e7b7d9ce5a66d6e69ad9ffc669 Mon Sep 17 00:00:00 2001 From: Michael Goulet Date: Wed, 12 Jan 2022 12:00:36 -0800 Subject: [PATCH] suggest deref/unboxing before wrapping variant --- compiler/rustc_typeck/src/check/demand.rs | 2 +- src/test/ui/suggestions/boxed-variant-field.stderr | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/compiler/rustc_typeck/src/check/demand.rs b/compiler/rustc_typeck/src/check/demand.rs index 62179821d23..c351a9f7040 100644 --- a/compiler/rustc_typeck/src/check/demand.rs +++ b/compiler/rustc_typeck/src/check/demand.rs @@ -31,8 +31,8 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { error: TypeError<'tcx>, ) { self.annotate_expected_due_to_let_ty(err, expr, error); - self.suggest_compatible_variants(err, expr, expected, expr_ty); self.suggest_deref_ref_or_into(err, expr, expected, expr_ty, expected_ty_expr); + self.suggest_compatible_variants(err, expr, expected, expr_ty); if self.suggest_calling_boxed_future_when_appropriate(err, expr, expected, expr_ty) { return; } diff --git a/src/test/ui/suggestions/boxed-variant-field.stderr b/src/test/ui/suggestions/boxed-variant-field.stderr index 4df8e7b20b7..9a31dc89197 100644 --- a/src/test/ui/suggestions/boxed-variant-field.stderr +++ b/src/test/ui/suggestions/boxed-variant-field.stderr @@ -6,14 +6,14 @@ LL | Ty::List(elem) => foo(elem), | = note: expected enum `Ty` found struct `Box` -help: try wrapping the expression in `Ty::List` - | -LL | Ty::List(elem) => foo(Ty::List(elem)), - | +++++++++ + help: consider unboxing the value | LL | Ty::List(elem) => foo(*elem), | + +help: try wrapping the expression in `Ty::List` + | +LL | Ty::List(elem) => foo(Ty::List(elem)), + | +++++++++ + error: aborting due to previous error