From f3fdbd0d89f2ce785c7dfb43b9776f1073dd4189 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Sun, 27 Mar 2016 02:45:14 +0530 Subject: [PATCH] Fix ICE with unknown defids --- src/enum_glob_use.rs | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/enum_glob_use.rs b/src/enum_glob_use.rs index 5b542a7d67b3..7924623c189e 100644 --- a/src/enum_glob_use.rs +++ b/src/enum_glob_use.rs @@ -43,20 +43,21 @@ impl EnumGlobUse { } if let ItemUse(ref item_use) = item.node { if let ViewPath_::ViewPathGlob(_) = item_use.node { - let def = cx.tcx.def_map.borrow()[&item.id]; - if let Some(node_id) = cx.tcx.map.as_local_node_id(def.def_id()) { - if let Some(NodeItem(it)) = cx.tcx.map.find(node_id) { - if let ItemEnum(..) = it.node { - span_lint(cx, ENUM_GLOB_USE, item.span, "don't use glob imports for enum variants"); - } - } - } else { - if let Some(dp) = cx.sess().cstore.def_path(def.def_id()).last() { - if let DefPathData::Type(_) = dp.data { - if let TyEnum(..) = cx.sess().cstore.item_type(&cx.tcx, def.def_id()).ty.sty { + if let Some(def) = cx.tcx.def_map.borrow().get(&item.id) { + if let Some(node_id) = cx.tcx.map.as_local_node_id(def.def_id()) { + if let Some(NodeItem(it)) = cx.tcx.map.find(node_id) { + if let ItemEnum(..) = it.node { span_lint(cx, ENUM_GLOB_USE, item.span, "don't use glob imports for enum variants"); } } + } else { + if let Some(dp) = cx.sess().cstore.def_path(def.def_id()).last() { + if let DefPathData::Type(_) = dp.data { + if let TyEnum(..) = cx.sess().cstore.item_type(&cx.tcx, def.def_id()).ty.sty { + span_lint(cx, ENUM_GLOB_USE, item.span, "don't use glob imports for enum variants"); + } + } + } } } }