@@ -3,15 +3,7 @@ use crate::code_stats::CodeStats;
33pub  use  crate :: code_stats:: { DataTypeKind ,  FieldInfo ,  FieldKind ,  SizeKind ,  VariantInfo } ; 
44use  crate :: config:: Input ; 
55use  crate :: config:: { self ,  CrateType ,  InstrumentCoverage ,  OptLevel ,  OutputType ,  SwitchWithOptPath } ; 
6- use  crate :: errors:: { 
7-     BranchProtectionRequiresAArch64 ,  CannotEnableCrtStaticLinux ,  CannotMixAndMatchSanitizers , 
8-     LinkerPluginToWindowsNotSupported ,  NotCircumventFeature ,  OptimisationFuelExhausted , 
9-     ProfileSampleUseFileDoesNotExist ,  ProfileUseFileDoesNotExist ,  SanitizerCfiEnabled , 
10-     SanitizerNotSupported ,  SanitizersNotSupported ,  SkippingConstChecks , 
11-     SplitDebugInfoUnstablePlatform ,  StackProtectorNotSupportedForTarget , 
12-     TargetRequiresUnwindTables ,  UnleashedFeatureHelp ,  UnstableVirtualFunctionElimination , 
13-     UnsupportedDwarfVersion , 
14- } ; 
6+ use  crate :: errors; 
157use  crate :: parse:: { add_feature_diagnostics,  ParseSess } ; 
168use  crate :: search_paths:: { PathKind ,  SearchPath } ; 
179use  crate :: { filesearch,  lint} ; 
@@ -246,23 +238,23 @@ impl Session {
246238        if  !unleashed_features. is_empty ( )  { 
247239            let  mut  must_err = false ; 
248240            // Create a diagnostic pointing at where things got unleashed. 
249-             self . emit_warning ( SkippingConstChecks  { 
241+             self . emit_warning ( errors :: SkippingConstChecks  { 
250242                unleashed_features :  unleashed_features
251243                    . iter ( ) 
252244                    . map ( |( span,  gate) | { 
253245                        gate. map ( |gate| { 
254246                            must_err = true ; 
255-                             UnleashedFeatureHelp :: Named  {  span :  * span,  gate } 
247+                             errors :: UnleashedFeatureHelp :: Named  {  span :  * span,  gate } 
256248                        } ) 
257-                         . unwrap_or ( UnleashedFeatureHelp :: Unnamed  {  span :  * span } ) 
249+                         . unwrap_or ( errors :: UnleashedFeatureHelp :: Unnamed  {  span :  * span } ) 
258250                    } ) 
259251                    . collect ( ) , 
260252            } ) ; 
261253
262254            // If we should err, make sure we did. 
263255            if  must_err && self . has_errors ( ) . is_none ( )  { 
264256                // We have skipped a feature gate, and not run into other errors... reject. 
265-                 self . emit_err ( NotCircumventFeature ) ; 
257+                 self . emit_err ( errors :: NotCircumventFeature ) ; 
266258            } 
267259        } 
268260    } 
@@ -901,7 +893,7 @@ impl Session {
901893                        // We only call `msg` in case we can actually emit warnings. 
902894                        // Otherwise, this could cause a `delay_good_path_bug` to 
903895                        // trigger (issue #79546). 
904-                         self . emit_warning ( OptimisationFuelExhausted  {  msg :  msg ( )  } ) ; 
896+                         self . emit_warning ( errors :: OptimisationFuelExhausted  {  msg :  msg ( )  } ) ; 
905897                    } 
906898                    fuel. out_of_fuel  = true ; 
907899                }  else  if  fuel. remaining  > 0  { 
@@ -1502,28 +1494,28 @@ fn validate_commandline_args_with_session_available(sess: &Session) {
15021494        && sess. opts . cg . prefer_dynamic 
15031495        && sess. target . is_like_windows 
15041496    { 
1505-         sess. emit_err ( LinkerPluginToWindowsNotSupported ) ; 
1497+         sess. emit_err ( errors :: LinkerPluginToWindowsNotSupported ) ; 
15061498    } 
15071499
15081500    // Make sure that any given profiling data actually exists so LLVM can't 
15091501    // decide to silently skip PGO. 
15101502    if  let  Some ( ref  path)  = sess. opts . cg . profile_use  { 
15111503        if  !path. exists ( )  { 
1512-             sess. emit_err ( ProfileUseFileDoesNotExist  {  path } ) ; 
1504+             sess. emit_err ( errors :: ProfileUseFileDoesNotExist  {  path } ) ; 
15131505        } 
15141506    } 
15151507
15161508    // Do the same for sample profile data. 
15171509    if  let  Some ( ref  path)  = sess. opts . unstable_opts . profile_sample_use  { 
15181510        if  !path. exists ( )  { 
1519-             sess. emit_err ( ProfileSampleUseFileDoesNotExist  {  path } ) ; 
1511+             sess. emit_err ( errors :: ProfileSampleUseFileDoesNotExist  {  path } ) ; 
15201512        } 
15211513    } 
15221514
15231515    // Unwind tables cannot be disabled if the target requires them. 
15241516    if  let  Some ( include_uwtables)  = sess. opts . cg . force_unwind_tables  { 
15251517        if  sess. target . requires_uwtable  && !include_uwtables { 
1526-             sess. emit_err ( TargetRequiresUnwindTables ) ; 
1518+             sess. emit_err ( errors :: TargetRequiresUnwindTables ) ; 
15271519        } 
15281520    } 
15291521
@@ -1533,67 +1525,69 @@ fn validate_commandline_args_with_session_available(sess: &Session) {
15331525    match  unsupported_sanitizers. into_iter ( ) . count ( )  { 
15341526        0  => { } 
15351527        1  => { 
1536-             sess. emit_err ( SanitizerNotSupported  {  us :  unsupported_sanitizers. to_string ( )  } ) ; 
1528+             sess. emit_err ( errors :: SanitizerNotSupported  {  us :  unsupported_sanitizers. to_string ( )  } ) ; 
15371529        } 
15381530        _ => { 
1539-             sess. emit_err ( SanitizersNotSupported  {  us :  unsupported_sanitizers. to_string ( )  } ) ; 
1531+             sess. emit_err ( errors:: SanitizersNotSupported  { 
1532+                 us :  unsupported_sanitizers. to_string ( ) , 
1533+             } ) ; 
15401534        } 
15411535    } 
15421536    // Cannot mix and match sanitizers. 
15431537    let  mut  sanitizer_iter = sess. opts . unstable_opts . sanitizer . into_iter ( ) ; 
15441538    if  let  ( Some ( first) ,  Some ( second) )  = ( sanitizer_iter. next ( ) ,  sanitizer_iter. next ( ) )  { 
1545-         sess. emit_err ( CannotMixAndMatchSanitizers  { 
1539+         sess. emit_err ( errors :: CannotMixAndMatchSanitizers  { 
15461540            first :  first. to_string ( ) , 
15471541            second :  second. to_string ( ) , 
15481542        } ) ; 
15491543    } 
15501544
15511545    // Cannot enable crt-static with sanitizers on Linux 
15521546    if  sess. crt_static ( None )  && !sess. opts . unstable_opts . sanitizer . is_empty ( )  { 
1553-         sess. emit_err ( CannotEnableCrtStaticLinux ) ; 
1547+         sess. emit_err ( errors :: CannotEnableCrtStaticLinux ) ; 
15541548    } 
15551549
15561550    // LLVM CFI and VFE both require LTO. 
15571551    if  sess. lto ( )  != config:: Lto :: Fat  { 
15581552        if  sess. is_sanitizer_cfi_enabled ( )  { 
1559-             sess. emit_err ( SanitizerCfiEnabled ) ; 
1553+             sess. emit_err ( errors :: SanitizerCfiEnabled ) ; 
15601554        } 
15611555        if  sess. opts . unstable_opts . virtual_function_elimination  { 
1562-             sess. emit_err ( UnstableVirtualFunctionElimination ) ; 
1556+             sess. emit_err ( errors :: UnstableVirtualFunctionElimination ) ; 
15631557        } 
15641558    } 
15651559
15661560    // LLVM CFI and KCFI are mutually exclusive 
15671561    if  sess. is_sanitizer_cfi_enabled ( )  && sess. is_sanitizer_kcfi_enabled ( )  { 
1568-         sess. emit_err ( CannotMixAndMatchSanitizers  { 
1562+         sess. emit_err ( errors :: CannotMixAndMatchSanitizers  { 
15691563            first :  "cfi" . to_string ( ) , 
15701564            second :  "kcfi" . to_string ( ) , 
15711565        } ) ; 
15721566    } 
15731567
15741568    if  sess. opts . unstable_opts . stack_protector  != StackProtector :: None  { 
15751569        if  !sess. target . options . supports_stack_protector  { 
1576-             sess. emit_warning ( StackProtectorNotSupportedForTarget  { 
1570+             sess. emit_warning ( errors :: StackProtectorNotSupportedForTarget  { 
15771571                stack_protector :  sess. opts . unstable_opts . stack_protector , 
15781572                target_triple :  & sess. opts . target_triple , 
15791573            } ) ; 
15801574        } 
15811575    } 
15821576
15831577    if  sess. opts . unstable_opts . branch_protection . is_some ( )  && sess. target . arch  != "aarch64"  { 
1584-         sess. emit_err ( BranchProtectionRequiresAArch64 ) ; 
1578+         sess. emit_err ( errors :: BranchProtectionRequiresAArch64 ) ; 
15851579    } 
15861580
15871581    if  let  Some ( dwarf_version)  = sess. opts . unstable_opts . dwarf_version  { 
15881582        if  dwarf_version > 5  { 
1589-             sess. emit_err ( UnsupportedDwarfVersion  {  dwarf_version } ) ; 
1583+             sess. emit_err ( errors :: UnsupportedDwarfVersion  {  dwarf_version } ) ; 
15901584        } 
15911585    } 
15921586
15931587    if  !sess. target . options . supported_split_debuginfo . contains ( & sess. split_debuginfo ( ) ) 
15941588        && !sess. opts . unstable_opts . unstable_options 
15951589    { 
1596-         sess. emit_err ( SplitDebugInfoUnstablePlatform  {  debuginfo :  sess. split_debuginfo ( )  } ) ; 
1590+         sess. emit_err ( errors :: SplitDebugInfoUnstablePlatform  {  debuginfo :  sess. split_debuginfo ( )  } ) ; 
15971591    } 
15981592} 
15991593
0 commit comments