From 4c82845b3ac583377b871bf01dc07ec513c466fe Mon Sep 17 00:00:00 2001 From: nidnogg Date: Sat, 20 Aug 2022 16:27:41 -0300 Subject: Fixed failing tests (missing labels), added automatic error code in create_feature_err() builder --- compiler/rustc_const_eval/src/const_eval/mod.rs | 4 ++-- compiler/rustc_const_eval/src/errors.rs | 8 +++++--- .../rustc_const_eval/src/transform/check_consts/ops.rs | 17 ++++------------- 3 files changed, 11 insertions(+), 18 deletions(-) (limited to 'compiler/rustc_const_eval/src') diff --git a/compiler/rustc_const_eval/src/const_eval/mod.rs b/compiler/rustc_const_eval/src/const_eval/mod.rs index 57867f77a02..9041d55155e 100644 --- a/compiler/rustc_const_eval/src/const_eval/mod.rs +++ b/compiler/rustc_const_eval/src/const_eval/mod.rs @@ -1,6 +1,6 @@ // Not in interpret to make sure we do not use private implementation details -use crate::errors::MaxNumNodesExceeded; +use crate::errors::MaxNumNodesInConstErr; use crate::interpret::{ intern_const_alloc_recursive, ConstValue, InternKind, InterpCx, InterpResult, MemPlaceMeta, Scalar, @@ -77,7 +77,7 @@ pub(crate) fn eval_to_valtree<'tcx>( ValTreeCreationError::NodesOverflow => { let msg = format!("maximum number of nodes exceeded in constant {}", &s); let mut diag = match tcx.hir().span_if_local(did) { - Some(span) => tcx.sess.create_err(MaxNumNodesExceeded { span, s }), + Some(span) => tcx.sess.create_err(MaxNumNodesInConstErr { span, s }), None => tcx.sess.struct_err(&msg), }; diag.emit(); diff --git a/compiler/rustc_const_eval/src/errors.rs b/compiler/rustc_const_eval/src/errors.rs index 7fa6a67a7f9..7e1cf4ef1aa 100644 --- a/compiler/rustc_const_eval/src/errors.rs +++ b/compiler/rustc_const_eval/src/errors.rs @@ -89,8 +89,8 @@ pub(crate) struct TransientMutBorrowErrRaw { } #[derive(SessionDiagnostic)] -#[error(const_eval::const_evaL_max_num_nodes_exceeded)] -pub(crate) struct MaxNumNodesExceeded { +#[error(const_eval::const_evaL_max_num_nodes_in_const_err)] +pub(crate) struct MaxNumNodesInConstErr { #[primary_span] pub span: Span, pub s: String, @@ -109,7 +109,7 @@ pub(crate) struct UnallowedFnPointerCall { pub(crate) struct UnstableConstFn { #[primary_span] pub span: Span, - pub def_id: String, + pub def_path: String, } #[derive(SessionDiagnostic)] @@ -160,6 +160,7 @@ pub(crate) struct UnallowedOpInConstContext { #[error(const_eval::unallowed_heap_allocations, code = "E0010")] pub(crate) struct UnallowedHeapAllocations { #[primary_span] + #[label] pub span: Span, pub kind: ConstContext, #[note(const_eval::teach_note)] @@ -178,6 +179,7 @@ pub(crate) struct UnallowedInlineAsm { #[error(const_eval::interior_mutable_data_refer, code = "E0492")] pub(crate) struct InteriorMutableDataRefer { #[primary_span] + #[label] pub span: Span, #[help] pub opt_help: Option<()>, diff --git a/compiler/rustc_const_eval/src/transform/check_consts/ops.rs b/compiler/rustc_const_eval/src/transform/check_consts/ops.rs index e2cf9b2b3c1..5fb4bf638b3 100644 --- a/compiler/rustc_const_eval/src/transform/check_consts/ops.rs +++ b/compiler/rustc_const_eval/src/transform/check_consts/ops.rs @@ -345,8 +345,10 @@ impl<'tcx> NonConstOp<'tcx> for FnCallUnstable { ) -> DiagnosticBuilder<'tcx, ErrorGuaranteed> { let FnCallUnstable(def_id, feature) = *self; - let mut err = - ccx.tcx.sess.create_err(UnstableConstFn { span, def_id: ccx.tcx.def_path_str(def_id) }); + let mut err = ccx + .tcx + .sess + .create_err(UnstableConstFn { span, def_path: ccx.tcx.def_path_str(def_id) }); if ccx.is_const_stable_const_fn() { err.help("const-stable functions can only call other const-stable functions"); @@ -517,17 +519,6 @@ impl<'tcx> NonConstOp<'tcx> for MutBorrow { ccx: &ConstCx<'_, 'tcx>, span: Span, ) -> DiagnosticBuilder<'tcx, ErrorGuaranteed> { - // let raw = match self.0 { - // hir::BorrowKind::Raw => "raw ", - // hir::BorrowKind::Ref => "", - // }; - - // ccx.tcx.sess.create_err(UnallowedMutableRefs { - // span, - // raw, - // kind: ccx.const_kind(), - // teach: ccx.tcx.sess.teach(&error_code!(E0764)).then_some(()), - // }) match self.0 { hir::BorrowKind::Raw => ccx.tcx.sess.create_err(UnallowedMutableRefsRaw { span, -- cgit 1.4.1-3-g733a5