diff options
| author | Ariel Ben-Yehuda <arielb1@mail.tau.ac.il> | 2015-08-07 13:57:39 +0300 |
|---|---|---|
| committer | Ariel Ben-Yehuda <arielb1@mail.tau.ac.il> | 2015-08-07 13:57:39 +0300 |
| commit | 62cd3cc46b533c3d1b6c94cc1d13a3be8a8c23ab (patch) | |
| tree | 6193d003b086f97760c01b4070cfd872db524074 | |
| parent | 7d32533eabb5321a0b2690bf16d07077b4f91562 (diff) | |
stop using skip_binder
| -rw-r--r-- | src/librustc/metadata/decoder.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs index 38f90e682be..b0f7bab6c59 100644 --- a/src/librustc/metadata/decoder.rs +++ b/src/librustc/metadata/decoder.rs @@ -30,7 +30,7 @@ use middle::def; use middle::lang_items; use middle::subst; use middle::ty::{ImplContainer, TraitContainer}; -use middle::ty::{self, Ty}; +use middle::ty::{self, RegionEscape, Ty}; use util::nodemap::FnvHashMap; use std::cell::{Cell, RefCell}; @@ -477,7 +477,13 @@ pub fn get_adt_def<'tcx>(intr: &IdentInterner, variant.name, ctor_ty); let field_tys = match ctor_ty.sty { - ty::TyBareFn(_, ref f) => &f.sig.skip_binder().inputs, + ty::TyBareFn(_, &ty::BareFnTy { sig: ty::Binder(ty::FnSig { + ref inputs, .. + }), ..}) => { + // tuple-struct constructors don't have escaping regions + assert!(!inputs.has_escaping_regions()); + inputs + }, _ => tcx.sess.bug("tuple-variant ctor is not an ADT") }; for (field, &ty) in variant.fields.iter().zip(field_tys.iter()) { |
