diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2017-08-05 12:27:28 +0300 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2017-09-11 08:41:15 +0300 |
| commit | 3ce31eb99076261291c1a0ae4b542f52e6ca0f0a (patch) | |
| tree | bc809754d7052e60bbc8c4d08377fa41d2998450 /src/librustc/middle | |
| parent | 932289c12d26803daf6b1990cb56bb974979bf9c (diff) | |
| download | rust-3ce31eb99076261291c1a0ae4b542f52e6ca0f0a.tar.gz rust-3ce31eb99076261291c1a0ae4b542f52e6ca0f0a.zip | |
rustc: replace usize with u64 and ConstUsize.
Diffstat (limited to 'src/librustc/middle')
| -rw-r--r-- | src/librustc/middle/const_val.rs | 11 | ||||
| -rw-r--r-- | src/librustc/middle/mem_categorization.rs | 2 |
2 files changed, 4 insertions, 9 deletions
diff --git a/src/librustc/middle/const_val.rs b/src/librustc/middle/const_val.rs index 01f050a1bd9..d213bc1de20 100644 --- a/src/librustc/middle/const_val.rs +++ b/src/librustc/middle/const_val.rs @@ -250,20 +250,15 @@ impl<'a, 'gcx, 'tcx> ConstEvalErr<'tcx> { pub fn eval_length(tcx: TyCtxt, count: hir::BodyId, reason: &str) - -> Result<usize, ErrorReported> + -> Result<ConstUsize, ErrorReported> { let count_expr = &tcx.hir.body(count).value; let count_def_id = tcx.hir.body_owner_def_id(count); let param_env = ty::ParamEnv::empty(Reveal::UserFacing); let substs = Substs::identity_for_item(tcx.global_tcx(), count_def_id); match tcx.at(count_expr.span).const_eval(param_env.and((count_def_id, substs))) { - Ok(&ty::Const { val: Integral(Usize(count)), .. }) => { - let val = count.as_u64(tcx.sess.target.uint_type); - assert_eq!(val as usize as u64, val); - Ok(val as usize) - }, - Ok(_) | - Err(ConstEvalErr { kind: ErrKind::TypeckError, .. }) => Err(ErrorReported), + Ok(&ty::Const { val: Integral(Usize(count)), .. }) => Ok(count), + Ok(_) | Err(ConstEvalErr { kind: ErrKind::TypeckError, .. }) => Err(ErrorReported), Err(err) => { let mut diag = err.struct_error(tcx, count_expr.span, reason); diff --git a/src/librustc/middle/mem_categorization.rs b/src/librustc/middle/mem_categorization.rs index 8bf942c1ae3..1a4d0dcd929 100644 --- a/src/librustc/middle/mem_categorization.rs +++ b/src/librustc/middle/mem_categorization.rs @@ -876,7 +876,7 @@ impl<'a, 'gcx, 'tcx> MemCategorizationContext<'a, 'gcx, 'tcx> { // Always promote `[T; 0]` (even when e.g. borrowed mutably). let promotable = match expr_ty.sty { - ty::TyArray(_, 0) => true, + ty::TyArray(_, len) if len.as_u64() == 0 => true, _ => promotable, }; |
