From b71c8b64b5f1609ca68c4a84fb3b28cb17b6f25c Mon Sep 17 00:00:00 2001 From: csmoe Date: Thu, 27 Aug 2020 22:01:52 +0800 Subject: [PATCH] should not try to apply field accessing on enum --- src/librustc_typeck/check/expr.rs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/librustc_typeck/check/expr.rs b/src/librustc_typeck/check/expr.rs index 82ed8fda8b489..582357273d6e3 100644 --- a/src/librustc_typeck/check/expr.rs +++ b/src/librustc_typeck/check/expr.rs @@ -1545,13 +1545,17 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> { normalized_ty.kind, ); if let ty::Adt(def, _) = normalized_ty.kind { - if def.non_enum_variant().fields.iter().any(|field| field.ident == field_ident) { - err.span_suggestion_verbose( - base.span.shrink_to_hi(), - "consider awaiting before field access", - ".await".to_string(), - Applicability::MaybeIncorrect, - ); + // no field access on enum type + if !def.is_enum() { + if def.non_enum_variant().fields.iter().any(|field| field.ident == field_ident) + { + err.span_suggestion_verbose( + base.span.shrink_to_hi(), + "consider awaiting before field access", + ".await".to_string(), + Applicability::MaybeIncorrect, + ); + } } } }