@@ -1176,7 +1176,6 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
11761176 let mut no_field_errors = true ;
11771177
11781178 let mut inexistent_fields = vec ! [ ] ;
1179- let mut invisible_fields = vec ! [ ] ;
11801179 // Typecheck each field.
11811180 for field in fields {
11821181 let span = field. span ;
@@ -1192,12 +1191,6 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
11921191 field_map
11931192 . get ( & ident)
11941193 . map ( |( i, f) | {
1195- if !f
1196- . vis
1197- . is_accessible_from ( tcx. parent_module ( pat. hir_id ) . to_def_id ( ) , tcx)
1198- {
1199- invisible_fields. push ( field. ident ) ;
1200- }
12011194 self . write_field_index ( field. hir_id , * i) ;
12021195 self . tcx . check_stability ( f. did , Some ( pat. hir_id ) , span) ;
12031196 self . field_ty ( span, f, substs)
@@ -1288,13 +1281,6 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
12881281 self . error_tuple_variant_index_shorthand ( variant, pat, fields)
12891282 {
12901283 err. emit ( ) ;
1291- } else if !invisible_fields. is_empty ( ) {
1292- let mut err = self . error_invisible_fields (
1293- adt. variant_descr ( ) ,
1294- & invisible_fields,
1295- variant,
1296- ) ;
1297- err. emit ( ) ;
12981284 }
12991285 }
13001286 }
@@ -1373,41 +1359,6 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
13731359 . emit ( ) ;
13741360 }
13751361
1376- fn error_invisible_fields (
1377- & self ,
1378- kind_name : & str ,
1379- invisible_fields : & [ Ident ] ,
1380- variant : & ty:: VariantDef ,
1381- ) -> DiagnosticBuilder < ' tcx > {
1382- let spans = invisible_fields. iter ( ) . map ( |ident| ident. span ) . collect :: < Vec < _ > > ( ) ;
1383- let ( field_names, t) = if invisible_fields. len ( ) == 1 {
1384- ( format ! ( "a field named `{}`" , invisible_fields[ 0 ] ) , "is" )
1385- } else {
1386- (
1387- format ! (
1388- "fields named {}" ,
1389- invisible_fields
1390- . iter( )
1391- . map( |ident| format!( "`{}`" , ident) )
1392- . collect:: <Vec <String >>( )
1393- . join( ", " )
1394- ) ,
1395- "are" ,
1396- )
1397- } ;
1398- let err = struct_span_err ! (
1399- self . tcx. sess,
1400- spans,
1401- E0603 ,
1402- "cannot match on {} of {} `{}`, which {} not accessible in current scope" ,
1403- field_names,
1404- kind_name,
1405- self . tcx. def_path_str( variant. def_id) ,
1406- t
1407- ) ;
1408- err
1409- }
1410-
14111362 fn error_inexistent_fields (
14121363 & self ,
14131364 kind_name : & str ,
0 commit comments