@@ -1350,24 +1350,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
13501350
13511351 match expr_t. sty {
13521352 ty:: Adt ( def, _) if !def. is_enum ( ) => {
1353- if let Some ( suggested_field_name) =
1354- Self :: suggest_field_name ( def. non_enum_variant ( ) ,
1355- & field. as_str ( ) , vec ! [ ] ) {
1356- err. span_suggestion (
1357- field. span ,
1358- "a field with a similar name exists" ,
1359- suggested_field_name. to_string ( ) ,
1360- Applicability :: MaybeIncorrect ,
1361- ) ;
1362- } else {
1363- err. span_label ( field. span , "unknown field" ) ;
1364- let struct_variant_def = def. non_enum_variant ( ) ;
1365- let field_names = self . available_field_names ( struct_variant_def) ;
1366- if !field_names. is_empty ( ) {
1367- err. note ( & format ! ( "available fields are: {}" ,
1368- self . name_series_display( field_names) ) ) ;
1369- }
1370- } ;
1353+ self . suggest_fields_on_recordish ( & mut err, def, field) ;
13711354 }
13721355 ty:: Array ( _, len) => {
13731356 self . maybe_suggest_array_indexing ( & mut err, expr, base, field, len) ;
@@ -1444,6 +1427,32 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
14441427 err. emit ( ) ;
14451428 }
14461429
1430+ fn suggest_fields_on_recordish (
1431+ & self ,
1432+ err : & mut DiagnosticBuilder < ' _ > ,
1433+ def : & ' tcx ty:: AdtDef ,
1434+ field : ast:: Ident ,
1435+ ) {
1436+ if let Some ( suggested_field_name) =
1437+ Self :: suggest_field_name ( def. non_enum_variant ( ) , & field. as_str ( ) , vec ! [ ] )
1438+ {
1439+ err. span_suggestion (
1440+ field. span ,
1441+ "a field with a similar name exists" ,
1442+ suggested_field_name. to_string ( ) ,
1443+ Applicability :: MaybeIncorrect ,
1444+ ) ;
1445+ } else {
1446+ err. span_label ( field. span , "unknown field" ) ;
1447+ let struct_variant_def = def. non_enum_variant ( ) ;
1448+ let field_names = self . available_field_names ( struct_variant_def) ;
1449+ if !field_names. is_empty ( ) {
1450+ err. note ( & format ! ( "available fields are: {}" ,
1451+ self . name_series_display( field_names) ) ) ;
1452+ }
1453+ }
1454+ }
1455+
14471456 fn maybe_suggest_array_indexing (
14481457 & self ,
14491458 err : & mut DiagnosticBuilder < ' _ > ,
0 commit comments