- if path.segments.len() >= 2 {
- let last_but_one = &path.segments[path.segments.len() - 2];
- if last_but_one.ident.name != kw::SelfUpper {
- let enum_def_id = match path.res {
- Res::Def(DefKind::Variant, variant_def_id) => self.cx.tcx.parent(variant_def_id),
- Res::Def(DefKind::Ctor(def::CtorOf::Variant, _), ctor_def_id) => {
- let variant_def_id = self.cx.tcx.parent(ctor_def_id);
- variant_def_id.and_then(|def_id| self.cx.tcx.parent(def_id))
- },
- _ => None,
- };
+ if !path.segments.iter().any(|p| p.ident.span.is_dummy()) {
+ if path.segments.len() >= 2 {
+ let last_but_one = &path.segments[path.segments.len() - 2];
+ if last_but_one.ident.name != kw::SelfUpper {
+ let enum_def_id = match path.res {
+ Res::Def(DefKind::Variant, variant_def_id) => self.cx.tcx.parent(variant_def_id),
+ Res::Def(DefKind::Ctor(def::CtorOf::Variant, _), ctor_def_id) => {
+ let variant_def_id = self.cx.tcx.parent(ctor_def_id);
+ variant_def_id.and_then(|def_id| self.cx.tcx.parent(def_id))
+ },
+ _ => None,
+ };