]> git.lizzy.rs Git - rust.git/blobdiff - compiler/rustc_monomorphize/src/partitioning/mod.rs
Auto merge of #100576 - joboet:movable_const_remutex, r=Mark-Simulacrum
[rust.git] / compiler / rustc_monomorphize / src / partitioning / mod.rs
index d88b7e0a813604a79ec7a18164530f30bfb367c9..932edc6675f5900cb6dd04d9678d7847345f0f9b 100644 (file)
 
 use crate::collector::InliningMap;
 use crate::collector::{self, MonoItemCollectionMode};
-use crate::errors::{FatalError, SpanFatalError};
+use crate::errors::{SymbolAlreadyDefined, UnknownPartitionStrategy};
 
 pub struct PartitioningCx<'a, 'tcx> {
     tcx: TyCtxt<'tcx>,
@@ -151,8 +151,7 @@ fn get_partitioner<'tcx>(tcx: TyCtxt<'tcx>) -> Box<dyn Partitioner<'tcx>> {
     match strategy {
         "default" => Box::new(default::DefaultPartitioning),
         _ => {
-            let error_message = "unknown partitioning strategy".to_string();
-            tcx.sess.emit_fatal(FatalError { error_message: error_message.clone() });
+            tcx.sess.emit_fatal(UnknownPartitionStrategy);
         }
     }
 }
@@ -335,13 +334,7 @@ fn assert_symbols_are_distinct<'a, 'tcx, I>(tcx: TyCtxt<'tcx>, mono_items: I)
                 (span1, span2) => span1.or(span2),
             };
 
-            let error_message = format!("symbol `{}` is already defined", sym1);
-
-            if let Some(span) = span {
-                tcx.sess.emit_fatal(SpanFatalError { span, error_message: error_message.clone() });
-            } else {
-                tcx.sess.emit_fatal(FatalError { error_message: error_message.clone() });
-            }
+            tcx.sess.emit_fatal(SymbolAlreadyDefined { span, symbol: sym1.to_string() });
         }
     }
 }
@@ -485,7 +478,7 @@ fn codegened_and_inlined_items<'tcx>(tcx: TyCtxt<'tcx>, (): ()) -> &'tcx DefIdSe
                     continue;
                 }
                 let body = tcx.instance_mir(instance.def);
-                for block in body.basic_blocks() {
+                for block in body.basic_blocks.iter() {
                     for statement in &block.statements {
                         let mir::StatementKind::Coverage(_) = statement.kind else { continue };
                         let scope = statement.source_info.scope;