]> git.lizzy.rs Git - rust.git/commitdiff
Add error explanation for E0014
authorGuillaume Gomez <guillaume1.gomez@gmail.com>
Fri, 5 Jun 2015 10:40:18 +0000 (12:40 +0200)
committerGuillaume Gomez <guillaume1.gomez@gmail.com>
Mon, 8 Jun 2015 06:18:03 +0000 (08:18 +0200)
src/librustc/diagnostics.rs

index 5e79e5a5a4ed2edf6b1a7623d4ab8bc5b9faf75a..af18d184045629325343022cdb99c91f642826d5 100644 (file)
@@ -227,6 +227,25 @@ fn index<'a>(&'a self, idx: u8) -> &'a u8 { &self.a }
 ```
 "##,
 
+E0014: r##"
+Constants can only be initialized by a constant value or, in a future
+version of Rust, a call to a const function. This error indicates the use
+of a path (like a::b, or x) denoting something other than one of these
+allowed items. Example:
+
+```
+const FOO: i32 = { let x = 0; x }; // 'x' isn't a constant nor a function!
+```
+
+To avoid it, you have to replace the non-constant value:
+
+```
+const FOO: i32 = { const X : i32 = 0; X };
+// or even:
+const FOO: i32 = { 0 }; // but brackets are useless here
+```
+"##,
+
 E0015: r##"
 The only functions that can be called in static or constant expressions are
 `const` functions. Rust currently does not support more general compile-time
@@ -931,7 +950,6 @@ fn bar(&self) -> i32 { self.0 }
 
 
 register_diagnostics! {
-    E0014,
     E0016,
     E0017,
     E0019,