From ae550bd987cbdd0b6ab59421c77c5575a060fca7 Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Fri, 5 Jun 2015 12:40:18 +0200 Subject: [PATCH] Add error explanation for E0014 --- src/librustc/diagnostics.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/librustc/diagnostics.rs b/src/librustc/diagnostics.rs index 5e79e5a5a4e..af18d184045 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> = None; register_diagnostics! { - E0014, E0016, E0017, E0019,