diff options
| author | Steve Klabnik <steve@steveklabnik.com> | 2015-10-07 18:18:36 -0400 |
|---|---|---|
| committer | Steve Klabnik <steve@steveklabnik.com> | 2015-10-07 18:18:36 -0400 |
| commit | 4b442963088865fa2aa79d26aa12e1e67007a2fb (patch) | |
| tree | 1cdbfadf976c5780b68e398552ee64afee6b0fd8 | |
| parent | f688c0e71153a4ee6ca936076cbad1bb08d3c52c (diff) | |
| parent | a94f684129dbf8cb4c87abe69ff45765cf24e501 (diff) | |
| download | rust-4b442963088865fa2aa79d26aa12e1e67007a2fb.tar.gz rust-4b442963088865fa2aa79d26aa12e1e67007a2fb.zip | |
Rollup merge of #28874 - GuillaumeGomez:error_code, r=Manishearth
r? @Manishearth
| -rw-r--r-- | src/librustc_trans/diagnostics.rs | 15 | ||||
| -rw-r--r-- | src/librustc_trans/trans/consts.rs | 4 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/librustc_trans/diagnostics.rs b/src/librustc_trans/diagnostics.rs index dd7c3834e56..05236a7a6fb 100644 --- a/src/librustc_trans/diagnostics.rs +++ b/src/librustc_trans/diagnostics.rs @@ -12,6 +12,21 @@ register_long_diagnostics! { +E0515: r##" +A constant index expression was out of bounds. Erroneous code example: + +``` +let x = &[0, 1, 2][7]; // error: const index-expr is out of bounds +``` + +Please specify a valid index (not inferior to 0 or superior to array length). +Example: + +``` +let x = &[0, 1, 2][2]; // ok! +``` +"##, + } register_diagnostics! { diff --git a/src/librustc_trans/trans/consts.rs b/src/librustc_trans/trans/consts.rs index 8e63f2788ed..0cae0ae59ba 100644 --- a/src/librustc_trans/trans/consts.rs +++ b/src/librustc_trans/trans/consts.rs @@ -628,8 +628,8 @@ fn const_expr_unadjusted<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, if iv >= len { // FIXME #3170: report this earlier on in the const-eval // pass. Reporting here is a bit late. - cx.sess().span_err(e.span, - "const index-expr is out of bounds"); + span_err!(cx.sess(), e.span, E0515, + "const index-expr is out of bounds"); C_undef(val_ty(arr).element_type()) } else { const_get_elt(cx, arr, &[iv as c_uint]) |
