about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-06-08 09:54:32 +0000
committerbors <bors@rust-lang.org>2015-06-08 09:54:32 +0000
commit1ade076f62c9e8188c4fb5c888277a1673ac82cd (patch)
treec9de7b7ec1f6fa5beb7189abffa7beec91329114
parentbea1c4a78e5233ea6f85a2028a26e08c26635fca (diff)
parentae550bd987cbdd0b6ab59421c77c5575a060fca7 (diff)
downloadrust-1ade076f62c9e8188c4fb5c888277a1673ac82cd.tar.gz
rust-1ade076f62c9e8188c4fb5c888277a1673ac82cd.zip
Auto merge of #26029 - GuillaumeGomez:const_check, r=Manishearth
Part of #24407.
-rw-r--r--src/librustc/diagnostics.rs20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/librustc/diagnostics.rs b/src/librustc/diagnostics.rs
index 67b09943781..9a60e2378cc 100644
--- a/src/librustc/diagnostics.rs
+++ b/src/librustc/diagnostics.rs
@@ -227,6 +227,25 @@ const Y: i32 = 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 @@ static mut BAR: Option<Vec<i32>> = None;
 
 
 register_diagnostics! {
-    E0014,
     E0016,
     E0017,
     E0019,