From 6cdb57d4b6106795014ecb90ec8f90d6e7ffadef Mon Sep 17 00:00:00 2001 From: Robin Stocker Date: Tue, 28 Apr 2015 19:49:09 +1000 Subject: [PATCH] Add error explanation for E0013 --- 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 182405a640dbc..8b43f9ada9a33 100644 --- a/src/librustc/diagnostics.rs +++ b/src/librustc/diagnostics.rs @@ -168,6 +168,25 @@ match x { ``` "##, +E0013: r##" +Static and const variables can refer to other const variables. But a const +variable cannot refer to a static variable. For example, `Y` cannot refer to `X` +here: + +``` +static X: i32 = 42; +const Y: i32 = X; +``` + +To fix this, the value can be extracted as a const and then used: + +``` +const A: i32 = 42; +static X: i32 = A; +const Y: i32 = A; +``` +"##, + E0015: r##" The only function calls allowed in static or constant expressions are enum variant constructors or struct constructors (for unit or tuple structs). This @@ -462,7 +481,6 @@ register_diagnostics! { E0010, E0011, E0012, - E0013, E0014, E0016, E0017,