Skip to content

Commit

Permalink
don't const eval constants during MIR creation
Browse files Browse the repository at this point in the history
this didn't work very well anyway, because const_eval can't eval all kinds of constants.
  • Loading branch information
oli-obk committed Jul 5, 2016
1 parent 0f4c4f8 commit e7b083a
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 28 deletions.
14 changes: 1 addition & 13 deletions src/librustc_mir/hair/cx/expr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -700,19 +700,7 @@ fn convert_path_expr<'a, 'gcx, 'tcx>(cx: &mut Cx<'a, 'gcx, 'tcx>,
ref sty => bug!("unexpected sty: {:?}", sty)
},
Def::Const(def_id) |
Def::AssociatedConst(def_id) => {
let substs = Some(cx.tcx.node_id_item_substs(expr.id).substs);
let tcx = cx.tcx.global_tcx();
if let Some((e, _)) = const_eval::lookup_const_by_id(tcx, def_id, substs) {
// FIXME ConstVal can't be yet used with adjustments, as they would be lost.
if !cx.tcx.tables.borrow().adjustments.contains_key(&e.id) {
if let Some(v) = cx.try_const_eval_literal(e) {
return ExprKind::Literal { literal: v };
}
}
}
def_id
}
Def::AssociatedConst(def_id) => def_id,

Def::Static(node_id, _) => return ExprKind::StaticRef {
id: node_id,
Expand Down
15 changes: 0 additions & 15 deletions src/librustc_mir/hair/cx/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -129,21 +129,6 @@ impl<'a, 'gcx, 'tcx> Cx<'a, 'gcx, 'tcx> {
}
}

pub fn try_const_eval_literal(&mut self, e: &hir::Expr) -> Option<Literal<'tcx>> {
let hint = const_eval::EvalHint::ExprTypeChecked;
let tcx = self.tcx.global_tcx();
const_eval::eval_const_expr_partial(tcx, e, hint, None).ok().and_then(|v| {
match v {
// All of these contain local IDs, unsuitable for storing in MIR.
ConstVal::Struct(_) | ConstVal::Tuple(_) |
ConstVal::Array(..) | ConstVal::Repeat(..) |
ConstVal::Function(_) => None,

_ => Some(Literal::Value { value: v })
}
})
}

pub fn trait_method(&mut self,
trait_def_id: DefId,
method_name: &str,
Expand Down

0 comments on commit e7b083a

Please sign in to comment.