summaryrefslogtreecommitdiffstats
path: root/src/test/ui/incoherent-inherent-impls/needs-has-incoherent-impls.rs
blob: 0f7282bec5c0e8d8dcf5e0877457148e1b537f4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// aux-build:extern-crate.rs
#![feature(rustc_attrs)]
extern crate extern_crate;

impl extern_crate::StructWithAttr {
    //~^ ERROR cannot define inherent `impl` for a type outside of the crate
    fn foo() {}
}
impl extern_crate::StructWithAttr {
    #[rustc_allow_incoherent_impl]
    fn bar() {}
}
impl extern_crate::StructNoAttr {
    //~^ ERROR cannot define inherent `impl` for a type outside of the crate
    fn foo() {}
}
impl extern_crate::StructNoAttr {
    //~^ ERROR cannot define inherent `impl` for a type outside of the crate
    #[rustc_allow_incoherent_impl]
    fn bar() {}
}
impl extern_crate::EnumWithAttr {
    //~^ ERROR cannot define inherent `impl` for a type outside of the crate
    fn foo() {}
}
impl extern_crate::EnumWithAttr {
    #[rustc_allow_incoherent_impl]
    fn bar() {}
}
impl extern_crate::EnumNoAttr {
    //~^ ERROR cannot define inherent `impl` for a type outside of the crate
    fn foo() {}
}
impl extern_crate::EnumNoAttr {
    //~^ ERROR cannot define inherent `impl` for a type outside of the crate
    #[rustc_allow_incoherent_impl]
    fn bar() {}
}

fn main() {}