summaryrefslogtreecommitdiffstats
path: root/src/test/ui/type-alias-impl-trait/coherence.rs
blob: 077a31494a972fe4517a0cb9cae4a54774538f4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// aux-build:foreign-crate.rs
#![feature(type_alias_impl_trait)]

extern crate foreign_crate;

trait LocalTrait {}
impl<T> LocalTrait for foreign_crate::ForeignType<T> {}

type AliasOfForeignType<T> = impl LocalTrait;
fn use_alias<T>(val: T) -> AliasOfForeignType<T> {
    foreign_crate::ForeignType(val)
}

impl<T> foreign_crate::ForeignTrait for AliasOfForeignType<T> {}
//~^ ERROR only traits defined in the current crate can be implemented for arbitrary types

fn main() {}