diff options
| author | Dylan DPC <dylan.dpc@gmail.com> | 2020-04-16 16:34:29 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-16 16:34:29 +0200 |
| commit | 7da24a2287d9ca2886f740a67ddb531d2243e218 (patch) | |
| tree | c0707fd0693b017043e9b152dd6ae8194a52e3f1 | |
| parent | e4ec7965ef364e3860cb8d24a877d3e420f015b9 (diff) | |
| parent | 49b745f19c992b189274cf48a76c0fc8cef761e4 (diff) | |
| download | rust-7da24a2287d9ca2886f740a67ddb531d2243e218.tar.gz rust-7da24a2287d9ca2886f740a67ddb531d2243e218.zip | |
Rollup merge of #71149 - RalfJung:check-const-call, r=eddyb
remove an impossible branch from check_consts All function calleess are either `FnPtr` or `FnDef`, so we can remove the alternative from check_consts and just make it ICE instead.
| -rw-r--r-- | src/librustc_mir/transform/check_consts/ops.rs | 10 | ||||
| -rw-r--r-- | src/librustc_mir/transform/check_consts/validation.rs | 11 |
2 files changed, 5 insertions, 16 deletions
diff --git a/src/librustc_mir/transform/check_consts/ops.rs b/src/librustc_mir/transform/check_consts/ops.rs index af7af7388bd..b3264a7a032 100644 --- a/src/librustc_mir/transform/check_consts/ops.rs +++ b/src/librustc_mir/transform/check_consts/ops.rs @@ -90,16 +90,6 @@ impl NonConstOp for FnCallNonConst { } } -/// A function call where the callee is not a function definition or function pointer, e.g. a -/// closure. -/// -/// This can be subdivided in the future to produce a better error message. -#[derive(Debug)] -pub struct FnCallOther; -impl NonConstOp for FnCallOther { - const IS_SUPPORTED_IN_MIRI: bool = false; -} - /// A call to a `#[unstable]` const fn or `#[rustc_const_unstable]` function. /// /// Contains the name of the feature that would allow the use of this function. diff --git a/src/librustc_mir/transform/check_consts/validation.rs b/src/librustc_mir/transform/check_consts/validation.rs index e4a0b9cdb48..4cc42c0408f 100644 --- a/src/librustc_mir/transform/check_consts/validation.rs +++ b/src/librustc_mir/transform/check_consts/validation.rs @@ -495,11 +495,11 @@ impl Visitor<'tcx> for Validator<'_, 'mir, 'tcx> { } } - fn visit_terminator_kind(&mut self, kind: &TerminatorKind<'tcx>, location: Location) { - trace!("visit_terminator_kind: kind={:?} location={:?}", kind, location); - self.super_terminator_kind(kind, location); + fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location) { + trace!("visit_terminator: terminator={:?} location={:?}", terminator, location); + self.super_terminator(terminator, location); - match kind { + match &terminator.kind { TerminatorKind::Call { func, .. } => { let fn_ty = func.ty(*self.body, self.tcx); @@ -511,8 +511,7 @@ impl Visitor<'tcx> for Validator<'_, 'mir, 'tcx> { return; } _ => { - self.check_op(ops::FnCallOther); - return; + span_bug!(terminator.source_info.span, "invalid callee of type {:?}", fn_ty) } }; |
