Commit graph

4 commits

Author SHA1 Message Date
Ariel Ben-Yehuda
37c569627c refactor constant evaluation error reporting
Refactor constant evaluation to use a single error reporting function
that reports a type-error-like message.

Also, unify all error codes with the "constant evaluation error" message
to just E0080, and similarly for a few other duplicate codes. The old
situation was a total mess, and now that we have *something* we can
further iterate on the UX.
2016-07-22 14:32:56 +03:00
Eduard Burtescu
1447fbf183 rustc_const_eval: track the length and index in IndexOutOfBounds. 2016-06-05 14:41:04 +03:00
Eduard Burtescu
e1eca0a110 Translate constants from MIR instead of going through trans::expr/consts. 2016-05-07 07:19:10 +03:00
Jed Davis
fd077800ea Fix LLVM assertion on out-of-bounds const slice index.
This turned up as part of #3170.  When constructing an `undef` value to
return in the error case, we were trying to get the element type of the
Rust-level value being indexed instead of the underlying array; when
indexing a slice, that's not an array and the LLVM assertion failure
reflects this.

The regression test is a lightly altered copy of `const-array-oob.rs`.
2015-10-04 17:22:28 -07:00