about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_typeck/check/intrinsic.rs2
-rw-r--r--src/librustc_typeck/diagnostics.rs20
-rw-r--r--src/test/compile-fail/E0619.rs1
-rw-r--r--src/test/compile-fail/E0622.rs (renamed from src/test/compile-fail/invalid-intrinsic.rs)2
4 files changed, 23 insertions, 2 deletions
diff --git a/src/librustc_typeck/check/intrinsic.rs b/src/librustc_typeck/check/intrinsic.rs
index 3acfbd1d844..96643ae72ab 100644
--- a/src/librustc_typeck/check/intrinsic.rs
+++ b/src/librustc_typeck/check/intrinsic.rs
@@ -37,7 +37,7 @@ fn equate_intrinsic_type<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
     match it.node {
         hir::ForeignItemFn(..) => {}
         _ => {
-            struct_span_err!(tcx.sess, it.span, E0619,
+            struct_span_err!(tcx.sess, it.span, E0622,
                              "intrinsic must be a function")
                 .span_label(it.span, "expected a function")
                 .emit();
diff --git a/src/librustc_typeck/diagnostics.rs b/src/librustc_typeck/diagnostics.rs
index 1b17faccc87..37f6f3753d7 100644
--- a/src/librustc_typeck/diagnostics.rs
+++ b/src/librustc_typeck/diagnostics.rs
@@ -4726,6 +4726,26 @@ let x = &[1_usize, 2] as &[usize]; // ok!
 ```
 "##,
 
+E0622: r##"
+An intrinsic was declared without being a function.
+
+Erroneous code example:
+
+```compile_fail,E0622
+#![feature(intrinsics)]
+extern "rust-intrinsic" {
+    pub static breakpoint : unsafe extern "rust-intrinsic" fn();
+    // error: intrinsic must be a function
+}
+
+fn main() { unsafe { breakpoint(); } }
+```
+
+An intrinsic is a function available for use in a given programming language
+whose implementation is handled specially by the compiler. In order to fix this
+error, just declare a function.
+"##,
+
 }
 
 register_diagnostics! {
diff --git a/src/test/compile-fail/E0619.rs b/src/test/compile-fail/E0619.rs
index 8ef90d89931..a5a5ff7218d 100644
--- a/src/test/compile-fail/E0619.rs
+++ b/src/test/compile-fail/E0619.rs
@@ -16,3 +16,4 @@ fn main() {
         _ => {}
     }
 }
+
diff --git a/src/test/compile-fail/invalid-intrinsic.rs b/src/test/compile-fail/E0622.rs
index c42d78c323e..f2bde5b0364 100644
--- a/src/test/compile-fail/invalid-intrinsic.rs
+++ b/src/test/compile-fail/E0622.rs
@@ -11,6 +11,6 @@
 #![feature(intrinsics)]
 extern "rust-intrinsic" {
     pub static breakpoint : unsafe extern "rust-intrinsic" fn();
-    //~^ ERROR intrinsic must be a function
+    //~^ ERROR intrinsic must be a function [E0622]
 }
 fn main() { unsafe { breakpoint(); } }