hir::ExprCast(ref from, _) => {
debug!("Checking const cast(id={})", from.id);
match v.tables.cast_kinds().get(from.hir_id) {
- None => span_bug!(e.span, "no kind for cast"),
+ None => v.tcx.sess.delay_span_bug(e.span, "no kind for cast"),
Some(&CastKind::PtrAddrCast) | Some(&CastKind::FnPtrAddrCast) => {
v.promotable = false;
}
--- /dev/null
+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+fn main() {
+ const N: u32 = 1_000;
+ const M: usize = (f64::from(N) * std::f64::LOG10_2) as usize; //~ ERROR cannot find value
+ let mut digits = [0u32; M];
+}
--- /dev/null
+error[E0425]: cannot find value `LOG10_2` in module `std::f64`
+ --> $DIR/issue-50599.rs:13:48
+ |
+LL | const M: usize = (f64::from(N) * std::f64::LOG10_2) as usize; //~ ERROR cannot find value
+ | ^^^^^^^ not found in `std::f64`
+help: possible candidates are found in other modules, you can import them into scope
+ |
+LL | use std::f32::consts::LOG10_2;
+ |
+LL | use std::f64::consts::LOG10_2;
+ |
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0425`.