diff options
Diffstat (limited to 'tests/ui/traits/safety-fn-body.rs')
-rw-r--r-- | tests/ui/traits/safety-fn-body.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/ui/traits/safety-fn-body.rs b/tests/ui/traits/safety-fn-body.rs new file mode 100644 index 000000000..2cc4fe1b3 --- /dev/null +++ b/tests/ui/traits/safety-fn-body.rs @@ -0,0 +1,19 @@ +// Check that an unsafe impl does not imply that unsafe actions are +// legal in the methods. + +// revisions: mir thir +// [thir]compile-flags: -Z thir-unsafeck + +unsafe trait UnsafeTrait : Sized { + fn foo(self) { } +} + +unsafe impl UnsafeTrait for *mut isize { + fn foo(self) { + // Unsafe actions are not made legal by taking place in an unsafe trait: + *self += 1; + //~^ ERROR E0133 + } +} + +fn main() { } |