From c848ca1f8df4ac550c83cbe22ff46c107dd86002 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Fri, 27 May 2016 21:36:40 +0200 Subject: [PATCH] Improve E0133 error explanation --- src/librustc/diagnostics.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/librustc/diagnostics.rs b/src/librustc/diagnostics.rs index c64f0ddac50..2b2525b1045 100644 --- a/src/librustc/diagnostics.rs +++ b/src/librustc/diagnostics.rs @@ -364,6 +364,18 @@ type X = u32; // ok! "##, E0133: r##" +Unsafe code was used outside of an unsafe function or block. + +Erroneous code example: + +```compile_fail +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: @@ -378,7 +390,7 @@ unsafe instructions with an `unsafe` block. For instance: unsafe fn f() { return; } fn main() { - unsafe { f(); } + unsafe { f(); } // ok! } ```