diff options
Diffstat (limited to 'src/test/ui/extern/extern-types-inherent-impl.rs')
-rw-r--r-- | src/test/ui/extern/extern-types-inherent-impl.rs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/test/ui/extern/extern-types-inherent-impl.rs b/src/test/ui/extern/extern-types-inherent-impl.rs new file mode 100644 index 000000000..3f09ac7b8 --- /dev/null +++ b/src/test/ui/extern/extern-types-inherent-impl.rs @@ -0,0 +1,26 @@ +// Test that inherent impls can be defined for extern types. + +// check-pass +// aux-build:extern-types-inherent-impl.rs + +#![feature(extern_types)] + +extern crate extern_types_inherent_impl; +use extern_types_inherent_impl::CrossCrate; + +extern "C" { + type Local; +} + +impl Local { + fn foo(&self) {} +} + +fn use_foo(x: &Local, y: &CrossCrate) { + Local::foo(x); + x.foo(); + CrossCrate::foo(y); + y.foo(); +} + +fn main() {} |