diff --git a/src/librustc_metadata/encoder.rs b/src/librustc_metadata/encoder.rs index 2736c60ffb6fa..d97d255873c95 100644 --- a/src/librustc_metadata/encoder.rs +++ b/src/librustc_metadata/encoder.rs @@ -1141,7 +1141,7 @@ 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 +1154,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/run-pass/traits/trait-alias-syntax.rs b/src/test/run-pass/traits/trait-alias-syntax.rs index a9b7afb0ea343..20df9848eceb9 100644 --- a/src/test/run-pass/traits/trait-alias-syntax.rs +++ b/src/test/run-pass/traits/trait-alias-syntax.rs @@ -10,6 +10,11 @@ #![feature(trait_alias)] +mod alpha { + pub trait A { } + pub trait C = A; +} + trait SimpleAlias = Default; trait GenericAlias = Iterator; trait Partial = IntoIterator;