diff --git a/src/librustc/ty/item_path.rs b/src/librustc/ty/item_path.rs index 3869910529055..64dfd2b71b453 100644 --- a/src/librustc/ty/item_path.rs +++ b/src/librustc/ty/item_path.rs @@ -175,7 +175,6 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { data @ DefPathData::LifetimeDef(..) | data @ DefPathData::EnumVariant(..) | data @ DefPathData::Field(..) | - data @ DefPathData::StructCtor | data @ DefPathData::Initializer | data @ DefPathData::MacroDef(..) | data @ DefPathData::ClosureExpr | @@ -186,6 +185,10 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { self.push_item_path(buffer, parent_def_id); buffer.push(&data.as_interned_str()); } + DefPathData::StructCtor => { // present `X` instead of `X::{{constructor}}` + let parent_def_id = self.parent_def_id(def_id).unwrap(); + self.push_item_path(buffer, parent_def_id); + } } } diff --git a/src/test/compile-fail/numeric-fields.rs b/src/test/compile-fail/numeric-fields.rs index a67707257d2f2..0dc5c4bcfa201 100644 --- a/src/test/compile-fail/numeric-fields.rs +++ b/src/test/compile-fail/numeric-fields.rs @@ -19,6 +19,6 @@ fn main() { match s { S{0: a, 0x1: b, ..} => {} //~^ ERROR does not have a field named `0x1` - //~| NOTE struct `S::{{constructor}}` does not have field `0x1` + //~| NOTE struct `S` does not have field `0x1` } }