Rollup merge of #28874 - GuillaumeGomez:error_code, r=Manishearth

r? @Manishearth
This commit is contained in:
Steve Klabnik 2015-10-07 18:18:36 -04:00
commit 4b44296308
2 changed files with 17 additions and 2 deletions

View File

@ -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! {

View File

@ -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])