1
Fork 0

Auto merge of #3945 - flip1995:rustup, r=phansch

Rustup

cc https://github.com/rust-lang/rust/pull/59227#issuecomment-482411861

This fix is obsolet once rust-lang/rust#59779 and #3926 is merged.
This commit is contained in:
bors 2019-04-12 11:53:08 +00:00
commit abf7f911d8
2 changed files with 7 additions and 9 deletions

View file

@ -16,7 +16,7 @@ use std::convert::TryInto;
use std::hash::{Hash, Hasher}; use std::hash::{Hash, Hasher};
use syntax::ast::{FloatTy, LitKind}; use syntax::ast::{FloatTy, LitKind};
use syntax::ptr::P; use syntax::ptr::P;
use syntax_pos::symbol::Symbol; use syntax_pos::symbol::{LocalInternedString, Symbol};
/// A `LitKind`-like enum to fold constant `Expr`s into. /// A `LitKind`-like enum to fold constant `Expr`s into.
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
@ -249,7 +249,10 @@ impl<'c, 'cc> ConstEvalLateContext<'c, 'cc> {
if let ExprKind::Path(qpath) = &callee.node; if let ExprKind::Path(qpath) = &callee.node;
let def = self.tables.qpath_def(qpath, callee.hir_id); let def = self.tables.qpath_def(qpath, callee.hir_id);
if let Some(def_id) = def.opt_def_id(); if let Some(def_id) = def.opt_def_id();
let def_path = get_def_path(self.tcx, def_id); let def_path = get_def_path(self.tcx, def_id)
.iter()
.map(LocalInternedString::get)
.collect::<Vec<_>>();
if let &["core", "num", impl_ty, "max_value"] = &def_path[..]; if let &["core", "num", impl_ty, "max_value"] = &def_path[..];
then { then {
let value = match impl_ty { let value = match impl_ty {

View file

@ -220,13 +220,8 @@ pub fn match_def_path<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId, path
/// // The given `def_id` is that of an `Option` type /// // The given `def_id` is that of an `Option` type
/// }; /// };
/// ``` /// ```
pub fn get_def_path<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Vec<&'static str> { pub fn get_def_path<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Vec<LocalInternedString> {
AbsolutePathPrinter { tcx } AbsolutePathPrinter { tcx }.print_def_path(def_id, &[]).unwrap()
.print_def_path(def_id, &[])
.unwrap()
.iter()
.map(LocalInternedString::get)
.collect()
} }
/// Checks if type is struct, enum or union type with the given def path. /// Checks if type is struct, enum or union type with the given def path.