@@ -6,7 +6,7 @@ use rustc::hir::def::{DefKind, Res};
66use rustc:: hir:: * ;
77use rustc:: lint:: LateContext ;
88use rustc:: ty:: subst:: { Subst , SubstsRef } ;
9- use rustc:: ty:: { self , Instance , Ty , TyCtxt } ;
9+ use rustc:: ty:: { self , Ty , TyCtxt } ;
1010use rustc:: { bug, span_bug} ;
1111use rustc_data_structures:: sync:: Lrc ;
1212use 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 ;
0 commit comments