Error code E0133

Unsafe code was used outside of an unsafe function or block.

Erroneous code example:

unsafe fn f() { return; } // This is the unsafe code fn main() { f(); // error: call to unsafe function requires unsafe function or block }

Using unsafe functionality is potentially dangerous and disallowed by safety checks. Examples:

  • Dereferencing raw pointers
  • Calling functions via FFI
  • Calling functions marked unsafe

These safety checks can be relaxed for a section of the code by wrapping the unsafe instructions with an unsafe block. For instance:

unsafe fn f() { return; } fn main() { unsafe { f(); } // ok! }

See the unsafe section of the Book for more details.