]> git.proxmox.com Git - rustc.git/blobdiff - src/test/ui/traits/safety-ok.rs
Merge tag 'debian/1.52.1+dfsg1-1_exp2' into proxmox/buster
[rustc.git] / src / test / ui / traits / safety-ok.rs
diff --git a/src/test/ui/traits/safety-ok.rs b/src/test/ui/traits/safety-ok.rs
new file mode 100644 (file)
index 0000000..d456a78
--- /dev/null
@@ -0,0 +1,18 @@
+// run-pass
+// Simple smoke test that unsafe traits can be compiled etc.
+
+
+unsafe trait Foo {
+    fn foo(&self) -> isize;
+}
+
+unsafe impl Foo for isize {
+    fn foo(&self) -> isize { *self }
+}
+
+fn take_foo<F:Foo>(f: &F) -> isize { f.foo() }
+
+fn main() {
+    let x: isize = 22;
+    assert_eq!(22, take_foo(&x));
+}