Skip to content

Commit 2a76cd8

Browse files
committed
Auto merge of #4944 - JohnTitor:rustup, r=oli-obk
Rustup to rust-lang/rust#66877 changelog: none
2 parents 6d12259 + d531616 commit 2a76cd8

File tree

2 files changed

+7
-19
lines changed

2 files changed

+7
-19
lines changed

clippy_lints/src/consts.rs

+6-9
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use rustc::hir::def::{DefKind, Res};
66
use rustc::hir::*;
77
use rustc::lint::LateContext;
88
use rustc::ty::subst::{Subst, SubstsRef};
9-
use rustc::ty::{self, Instance, Ty, TyCtxt};
9+
use rustc::ty::{self, Ty, TyCtxt};
1010
use rustc::{bug, span_bug};
1111
use rustc_data_structures::sync::Lrc;
1212
use std::cmp::Ordering::{self, Equal};
@@ -328,8 +328,6 @@ impl<'c, 'cc> ConstEvalLateContext<'c, 'cc> {
328328

329329
/// Lookup a possibly constant expression from a `ExprKind::Path`.
330330
fn fetch_path(&mut self, qpath: &QPath, id: HirId) -> Option<Constant> {
331-
use rustc::mir::interpret::GlobalId;
332-
333331
let res = self.tables.qpath_res(qpath, id);
334332
match res {
335333
Res::Def(DefKind::Const, def_id) | Res::Def(DefKind::AssocConst, def_id) => {
@@ -339,13 +337,12 @@ impl<'c, 'cc> ConstEvalLateContext<'c, 'cc> {
339337
} else {
340338
substs.subst(self.lcx.tcx, self.substs)
341339
};
342-
let instance = Instance::resolve(self.lcx.tcx, self.param_env, def_id, substs)?;
343-
let gid = GlobalId {
344-
instance,
345-
promoted: None,
346-
};
347340

348-
let result = self.lcx.tcx.const_eval(self.param_env.and(gid)).ok()?;
341+
let result = self
342+
.lcx
343+
.tcx
344+
.const_eval_resolve(self.param_env, def_id, substs, None)
345+
.ok()?;
349346
let result = miri_to_const(&result);
350347
if result.is_some() {
351348
self.needed_resolution = true;

clippy_lints/src/enum_clike.rs

+1-10
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ use crate::utils::span_lint;
66
use rustc::declare_lint_pass;
77
use rustc::hir::*;
88
use rustc::lint::{LateContext, LateLintPass, LintArray, LintPass};
9-
use rustc::mir::interpret::GlobalId;
109
use rustc::ty;
11-
use rustc::ty::subst::InternalSubsts;
1210
use rustc::ty::util::IntTypeExt;
1311
use rustc_session::declare_tool_lint;
1412
use std::convert::TryFrom;
@@ -48,15 +46,8 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for UnportableVariant {
4846
if let ItemKind::Enum(def, _) = &item.kind {
4947
for var in def.variants {
5048
if let Some(anon_const) = &var.disr_expr {
51-
let param_env = ty::ParamEnv::empty();
5249
let def_id = cx.tcx.hir().body_owner_def_id(anon_const.body);
53-
let substs = InternalSubsts::identity_for_item(cx.tcx, def_id);
54-
let instance = ty::Instance::new(def_id, substs);
55-
let c_id = GlobalId {
56-
instance,
57-
promoted: None,
58-
};
59-
let constant = cx.tcx.const_eval(param_env.and(c_id)).ok();
50+
let constant = cx.tcx.const_eval_poly(def_id).ok();
6051
if let Some(Constant::Int(val)) = constant.and_then(miri_to_const) {
6152
let mut ty = cx.tcx.type_of(def_id);
6253
if let ty::Adt(adt, _) = ty.kind {

0 commit comments

Comments
 (0)