]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc/middle/infer/error_reporting.rs
Auto merge of #30641 - tsion:match-range, r=eddyb
[rust.git] / src / librustc / middle / infer / error_reporting.rs
index 5382e328a113b1e1521db1e6cfdb17d82ca0bcd7..d628227d5e63cacad504cbc7c232eb909502c4cb 100644 (file)
@@ -237,7 +237,7 @@ fn process_errors(&self, errors: &Vec<RegionResolutionError<'tcx>>)
     fn report_type_error(&self,
                          trace: TypeTrace<'tcx>,
                          terr: &TypeError<'tcx>)
-                         -> Option<DiagnosticBuilder<'tcx>>;
+                         -> DiagnosticBuilder<'tcx>;
 
     fn check_and_note_conflicting_crates(&self,
                                          err: &mut DiagnosticBuilder,
@@ -478,11 +478,11 @@ fn append_to_same_regions(same_regions: &mut Vec<SameRegions>,
     fn report_type_error(&self,
                          trace: TypeTrace<'tcx>,
                          terr: &TypeError<'tcx>)
-                         -> Option<DiagnosticBuilder<'tcx>> {
+                         -> DiagnosticBuilder<'tcx> {
         let expected_found_str = match self.values_str(&trace.values) {
             Some(v) => v,
             None => {
-                return None; /* derived error */
+                return self.tcx.sess.diagnostic().struct_dummy(); /* derived error */
             }
         };
 
@@ -507,7 +507,7 @@ fn report_type_error(&self,
             },
             _ => ()
         }
-        Some(err)
+        err
     }
 
     /// Adds a note if the types come from similarly named crates
@@ -560,11 +560,9 @@ fn report_and_explain_type_error(&self,
                                      trace: TypeTrace<'tcx>,
                                      terr: &TypeError<'tcx>) {
         let span = trace.origin.span();
-        let err = self.report_type_error(trace, terr);
-        err.map(|mut err| {
-            self.tcx.note_and_explain_type_err(&mut err, terr, span);
-            err.emit();
-        });
+        let mut err = self.report_type_error(trace, terr);
+        self.tcx.note_and_explain_type_err(&mut err, terr, span);
+        err.emit();
     }
 
     /// Returns a string of the form "expected `{}`, found `{}`", or None if this is a derived