// aux-build:foreign-crate.rs #![feature(type_alias_impl_trait)] extern crate foreign_crate; trait LocalTrait {} impl LocalTrait for foreign_crate::ForeignType {} type AliasOfForeignType = impl LocalTrait; fn use_alias(val: T) -> AliasOfForeignType { foreign_crate::ForeignType(val) } impl foreign_crate::ForeignTrait for AliasOfForeignType {} //~^ ERROR only traits defined in the current crate can be implemented for arbitrary types fn main() {}