#![allow(dead_code)]
#![deny(unsafe_code)]
+use std::marker::PhantomFn;
+
struct Bar;
#[allow(unsafe_code)]
mod allowed_unsafe {
+ use std::marker::PhantomFn;
fn allowed() { unsafe {} }
unsafe fn also_allowed() {}
- unsafe trait AllowedUnsafe {}
+ unsafe trait AllowedUnsafe : PhantomFn<Self> {}
unsafe impl AllowedUnsafe for super::Bar {}
}
}
unsafe fn baz() {} //~ ERROR: declaration of an `unsafe` function
-unsafe trait Foo {} //~ ERROR: declaration of an `unsafe` trait
+unsafe trait Foo : PhantomFn<Self> {} //~ ERROR: declaration of an `unsafe` trait
unsafe impl Foo for Bar {} //~ ERROR: implementation of an `unsafe` trait
trait Baz {