about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEsteban Küber <esteban@kuber.com.ar>2018-12-07 14:52:44 -0800
committerEsteban Küber <esteban@kuber.com.ar>2018-12-07 14:52:44 -0800
commit14cca296c5f4e12b147a60bfca032950cc67e635 (patch)
tree9b38988ba6b22413fd90b89382635451c9833d2f
parentcd48ce1e9a9c0965f01ede2ea1a554eca2c74336 (diff)
downloadrust-14cca296c5f4e12b147a60bfca032950cc67e635.tar.gz
rust-14cca296c5f4e12b147a60bfca032950cc67e635.zip
Encode `TraitAlias` as if they were `Trait`
-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 2736c60ffb6..9bcb541ece8 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() {}