Skip to content

Commit

Permalink
Remove CheckOpResult
Browse files Browse the repository at this point in the history
  • Loading branch information
ecstatic-morse committed Nov 27, 2019
1 parent 5117407 commit dd32d91
Showing 1 changed file with 6 additions and 14 deletions.
20 changes: 6 additions & 14 deletions src/librustc_mir/transform/check_consts/validation.rs
Expand Up @@ -23,13 +23,6 @@ use super::qualifs::{self, HasMutInterior, NeedsDrop};
use super::resolver::FlowSensitiveAnalysis;
use super::{ConstKind, Item, Qualif, is_lang_panic_fn};

#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum CheckOpResult {
Forbidden,
Unleashed,
Allowed,
}

pub type IndirectlyMutableResults<'mir, 'tcx> =
old_dataflow::DataflowResultsCursor<'mir, 'tcx, IndirectlyMutableLocals<'mir, 'tcx>>;

Expand Down Expand Up @@ -246,15 +239,15 @@ impl Validator<'a, 'mir, 'tcx> {
}

/// Emits an error at the given `span` if an expression cannot be evaluated in the current
/// context. Returns `Forbidden` if an error was emitted.
pub fn check_op_spanned<O>(&mut self, op: O, span: Span) -> CheckOpResult
/// context.
pub fn check_op_spanned<O>(&mut self, op: O, span: Span)
where
O: NonConstOp
{
trace!("check_op: op={:?}", op);

if op.is_allowed_in_item(self) {
return CheckOpResult::Allowed;
return;
}

// If an operation is supported in miri (and is not already controlled by a feature gate) it
Expand All @@ -264,20 +257,19 @@ impl Validator<'a, 'mir, 'tcx> {

if is_unleashable && self.tcx.sess.opts.debugging_opts.unleash_the_miri_inside_of_you {
self.tcx.sess.span_warn(span, "skipping const checks");
return CheckOpResult::Unleashed;
return;
}

op.emit_error(self, span);
CheckOpResult::Forbidden
}

/// Emits an error if an expression cannot be evaluated in the current context.
pub fn check_op(&mut self, op: impl NonConstOp) -> CheckOpResult {
pub fn check_op(&mut self, op: impl NonConstOp) {
let span = self.span;
self.check_op_spanned(op, span)
}

fn check_static(&mut self, def_id: DefId, span: Span) -> CheckOpResult {
fn check_static(&mut self, def_id: DefId, span: Span) {
let is_thread_local = self.tcx.has_attr(def_id, sym::thread_local);
if is_thread_local {
self.check_op_spanned(ops::ThreadLocalAccess, span)
Expand Down

0 comments on commit dd32d91

Please sign in to comment.