From 3fe5eea4e47921fa4b399a8d58c39e8397ad3ef8 Mon Sep 17 00:00:00 2001 From: flip1995 Date: Fri, 12 Apr 2019 10:58:25 +0200 Subject: [PATCH] Fix `get_def_path` This fix is obsolet once rust-lang/rust#59779 and #3926 is merged. --- clippy_lints/src/consts.rs | 7 +++++-- clippy_lints/src/utils/mod.rs | 9 ++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/clippy_lints/src/consts.rs b/clippy_lints/src/consts.rs index 66fbf18f3..4442d8a2d 100644 --- a/clippy_lints/src/consts.rs +++ b/clippy_lints/src/consts.rs @@ -16,7 +16,7 @@ use std::convert::TryInto; use std::hash::{Hash, Hasher}; use syntax::ast::{FloatTy, LitKind}; 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. #[derive(Debug, Clone)] @@ -249,7 +249,10 @@ impl<'c, 'cc> ConstEvalLateContext<'c, 'cc> { if let ExprKind::Path(qpath) = &callee.node; let def = self.tables.qpath_def(qpath, callee.hir_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::>(); if let &["core", "num", impl_ty, "max_value"] = &def_path[..]; then { let value = match impl_ty { diff --git a/clippy_lints/src/utils/mod.rs b/clippy_lints/src/utils/mod.rs index 542a18635..3383e47ac 100644 --- a/clippy_lints/src/utils/mod.rs +++ b/clippy_lints/src/utils/mod.rs @@ -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 /// }; /// ``` -pub fn get_def_path<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Vec<&'static str> { - AbsolutePathPrinter { tcx } - .print_def_path(def_id, &[]) - .unwrap() - .iter() - .map(LocalInternedString::get) - .collect() +pub fn get_def_path<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId) -> Vec { + AbsolutePathPrinter { tcx }.print_def_path(def_id, &[]).unwrap() } /// Checks if type is struct, enum or union type with the given def path.