diff options
| author | Vishnunarayan K I <appukuttancr@gmail.com> | 2020-11-10 14:59:44 +0530 |
|---|---|---|
| committer | Vishnunarayan K I <appukuttancr@gmail.com> | 2020-11-12 21:08:18 +0530 |
| commit | 8119c4beeeb5d50018a616f32a46fbf8876e5cd7 (patch) | |
| tree | 0e33f92501f5c9deafdc5216155b891494491513 | |
| parent | 5029a19313839c951ae15633d928c0a607eb7ba9 (diff) | |
| download | rust-8119c4beeeb5d50018a616f32a46fbf8876e5cd7.tar.gz rust-8119c4beeeb5d50018a616f32a46fbf8876e5cd7.zip | |
review comments
4 files changed, 11 insertions, 11 deletions
diff --git a/compiler/rustc_middle/src/mir/query.rs b/compiler/rustc_middle/src/mir/query.rs index b0311400e77..db0056e482b 100644 --- a/compiler/rustc_middle/src/mir/query.rs +++ b/compiler/rustc_middle/src/mir/query.rs @@ -241,7 +241,7 @@ pub struct ConstQualifs { pub has_mut_interior: bool, pub needs_drop: bool, pub custom_eq: bool, - pub error_occured: bool, + pub error_occured: Option<ErrorReported>, } /// After we borrow check a closure, we are left with various diff --git a/compiler/rustc_mir/src/const_eval/eval_queries.rs b/compiler/rustc_mir/src/const_eval/eval_queries.rs index 1fc3fd9be2b..6e09ae43406 100644 --- a/compiler/rustc_mir/src/const_eval/eval_queries.rs +++ b/compiler/rustc_mir/src/const_eval/eval_queries.rs @@ -282,9 +282,8 @@ pub fn eval_to_allocation_raw_provider<'tcx>( ); return Err(ErrorHandled::Reported(ErrorReported {})); } - let qualif = tcx.mir_const_qualif_opt_const_arg(def); - if qualif.error_occured { - return Err(ErrorHandled::Reported(ErrorReported {})); + if let Some(error_reported) = tcx.mir_const_qualif_opt_const_arg(def).error_occured { + return Err(ErrorHandled::Reported(error_reported)); } } diff --git a/compiler/rustc_mir/src/transform/check_consts/qualifs.rs b/compiler/rustc_mir/src/transform/check_consts/qualifs.rs index 129985543a0..c66d3ed76df 100644 --- a/compiler/rustc_mir/src/transform/check_consts/qualifs.rs +++ b/compiler/rustc_mir/src/transform/check_consts/qualifs.rs @@ -2,6 +2,7 @@ //! //! See the `Qualif` trait for more info. +use rustc_errors::ErrorReported; use rustc_middle::mir::*; use rustc_middle::ty::{self, subst::SubstsRef, AdtDef, Ty}; use rustc_span::DUMMY_SP; @@ -12,7 +13,7 @@ use super::ConstCx; pub fn in_any_value_of_ty( cx: &ConstCx<'_, 'tcx>, ty: Ty<'tcx>, - error_occured: bool, + error_occured: Option<ErrorReported>, ) -> ConstQualifs { ConstQualifs { has_mut_interior: HasMutInterior::in_any_value_of_ty(cx, ty), diff --git a/compiler/rustc_mir/src/transform/check_consts/validation.rs b/compiler/rustc_mir/src/transform/check_consts/validation.rs index ab65bc5a338..e4893044a15 100644 --- a/compiler/rustc_mir/src/transform/check_consts/validation.rs +++ b/compiler/rustc_mir/src/transform/check_consts/validation.rs @@ -1,6 +1,6 @@ //! The `Visitor` responsible for actually checking a `mir::Body` for invalid operations. -use rustc_errors::{struct_span_err, Applicability, Diagnostic}; +use rustc_errors::{struct_span_err, Applicability, Diagnostic, ErrorReported}; use rustc_hir::def_id::DefId; use rustc_hir::{self as hir, HirId, LangItem}; use rustc_infer::infer::TyCtxtInferExt; @@ -126,7 +126,7 @@ impl Qualifs<'mir, 'tcx> { fn in_return_place( &mut self, ccx: &'mir ConstCx<'mir, 'tcx>, - error_occured: bool, + error_occured: Option<ErrorReported>, ) -> ConstQualifs { // Find the `Return` terminator if one exists. // @@ -186,7 +186,7 @@ pub struct Validator<'mir, 'tcx> { /// The span of the current statement. span: Span, - error_emitted: bool, + error_emitted: Option<ErrorReported>, secondary_errors: Vec<Diagnostic>, } @@ -204,7 +204,7 @@ impl Validator<'mir, 'tcx> { span: ccx.body.span, ccx, qualifs: Default::default(), - error_emitted: false, + error_emitted: None, secondary_errors: Vec::new(), } } @@ -271,7 +271,7 @@ impl Validator<'mir, 'tcx> { // If we got through const-checking without emitting any "primary" errors, emit any // "secondary" errors if they occurred. let secondary_errors = mem::take(&mut self.secondary_errors); - if !self.error_emitted { + if self.error_emitted.is_none() { for error in secondary_errors { self.tcx.sess.diagnostic().emit_diagnostic(&error); } @@ -323,7 +323,7 @@ impl Validator<'mir, 'tcx> { match op.importance() { ops::DiagnosticImportance::Primary => { - self.error_emitted = true; + self.error_emitted = Some(ErrorReported); err.emit(); } |
