2014-12-10 15:59:20 +00:00
|
|
|
// Check that an unsafe impl does not imply that unsafe actions are
|
|
|
|
// legal in the methods.
|
|
|
|
|
2021-05-14 21:19:59 +00:00
|
|
|
// revisions: mir thir
|
|
|
|
// [thir]compile-flags: -Z thir-unsafeck
|
|
|
|
|
2014-12-19 11:54:09 +00:00
|
|
|
unsafe trait UnsafeTrait : Sized {
|
2014-12-10 15:59:20 +00:00
|
|
|
fn foo(self) { }
|
|
|
|
}
|
|
|
|
|
2015-01-08 10:54:35 +00:00
|
|
|
unsafe impl UnsafeTrait for *mut isize {
|
2014-12-10 15:59:20 +00:00
|
|
|
fn foo(self) {
|
|
|
|
// Unsafe actions are not made legal by taking place in an unsafe trait:
|
2016-08-10 07:29:45 +00:00
|
|
|
*self += 1;
|
|
|
|
//~^ ERROR E0133
|
2014-12-10 15:59:20 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() { }
|