about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2018-12-08 19:34:43 +0000
committerbors <bors@rust-lang.org>2018-12-08 19:34:43 +0000
commit8db23425a345381ec5f8d40e582c119a06b8cb3d (patch)
tree1a46113bfa2ad28d6eefc16337822107aacedfcb
parentbdef56a3245460d1fb28c3b4d8ac4b17373c66ce (diff)
parent14cca296c5f4e12b147a60bfca032950cc67e635 (diff)
Auto merge of #56616 - estebank:issue-56539, r=davidtwco
Encode `TraitAlias` as if they were `Trait`

Fix #56539.
-rw-r--r--src/librustc_metadata/encoder.rs4
-rw-r--r--src/test/ui/run-pass/traits/trait-alias.rs7
2 files changed, 9 insertions, 2 deletions
diff --git a/src/librustc_metadata/encoder.rs b/src/librustc_metadata/encoder.rs
index 329e2dbdd95..feed70c6122 100644
--- a/src/librustc_metadata/encoder.rs
+++ b/src/librustc_metadata/encoder.rs
@@ -1141,7 +1141,8 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
 
                 EntryKind::Impl(self.lazy(&data))
             }
-            hir::ItemKind::Trait(..) => {
+            hir::ItemKind::Trait(..) |
+            hir::ItemKind::TraitAlias(..) => {
                 let trait_def = tcx.trait_def(def_id);
                 let data = TraitData {
                     unsafety: trait_def.unsafety,
@@ -1154,7 +1155,6 @@ impl<'a, 'b: 'a, 'tcx: 'b> IsolatedEncoder<'a, 'b, 'tcx> {
                 EntryKind::Trait(self.lazy(&data))
             }
             hir::ItemKind::ExternCrate(_) |
-            hir::ItemKind::TraitAlias(..) |
             hir::ItemKind::Use(..) => bug!("cannot encode info for item {:?}", item),
         };
 
diff --git a/src/test/ui/run-pass/traits/trait-alias.rs b/src/test/ui/run-pass/traits/trait-alias.rs
new file mode 100644
index 00000000000..9be5664869e
--- /dev/null
+++ b/src/test/ui/run-pass/traits/trait-alias.rs
@@ -0,0 +1,7 @@
+// run-pass
+#![feature(trait_alias)]
+
+pub trait Foo {}
+pub trait FooAlias = Foo;
+
+fn main() {}