diff options
| author | Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2018-02-23 13:39:41 +0100 |
|---|---|---|
| committer | Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2018-03-08 08:35:38 +0100 |
| commit | eb18d39a04dc524232471d1011bfd7c1f1fcad4d (patch) | |
| tree | a139cdcdb0d0ca4c42577a3a2186ae7dea692f4b | |
| parent | 273025675d5c526ae5a0b212b4a46a7fb9938d01 (diff) | |
Reuse `Integer::from_attr`
| -rw-r--r-- | src/librustc_mir/hair/cx/mod.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/librustc_mir/hair/cx/mod.rs b/src/librustc_mir/hair/cx/mod.rs index 28eef70679b..57aa7bd4afe 100644 --- a/src/librustc_mir/hair/cx/mod.rs +++ b/src/librustc_mir/hair/cx/mod.rs @@ -23,7 +23,7 @@ use rustc::hir::map::blocks::FnLikeNode; use rustc::middle::region; use rustc::infer::InferCtxt; use rustc::ty::subst::Subst; -use rustc::ty::{self, Ty, TyCtxt}; +use rustc::ty::{self, Ty, TyCtxt, layout}; use rustc::ty::subst::Substs; use syntax::ast::{self, LitKind}; use syntax::attr; @@ -153,11 +153,12 @@ impl<'a, 'gcx, 'tcx> Cx<'a, 'gcx, 'tcx> { &self, ty: Ty, ) -> u64 { - match ty.sty { - ty::TyInt(ity) => ity.bit_width(), - ty::TyUint(uty) => uty.bit_width(), + let ty = match ty.sty { + ty::TyInt(ity) => attr::IntType::SignedInt(ity), + ty::TyUint(uty) => attr::IntType::UnsignedInt(uty), _ => bug!("{} is not an integer", ty), - }.map_or(self.tcx.data_layout.pointer_size.bits(), |n| n as u64) + }; + layout::Integer::from_attr(self.tcx, ty).size().bits() } pub fn const_eval_literal( |
