replace GeneratorSubsts inside related types
This commit is contained in:
parent
fa7a87be63
commit
774ea808be
@ -912,7 +912,7 @@ impl TypeFolder<'tcx> for ReverseMapper<'tcx> {
|
||||
}
|
||||
}));
|
||||
|
||||
self.tcx.mk_generator(def_id, ty::GeneratorSubsts { substs }, movability)
|
||||
self.tcx.mk_generator(def_id, substs, movability)
|
||||
}
|
||||
|
||||
ty::Param(..) => {
|
||||
|
@ -15,7 +15,7 @@ use crate::ty::layout::VariantIdx;
|
||||
use crate::ty::print::{FmtPrinter, Printer};
|
||||
use crate::ty::subst::{Subst, SubstsRef};
|
||||
use crate::ty::{
|
||||
self, AdtDef, CanonicalUserTypeAnnotations, GeneratorSubsts, Region, Ty, TyCtxt,
|
||||
self, AdtDef, CanonicalUserTypeAnnotations, Region, Ty, TyCtxt,
|
||||
UserTypeAnnotationIndex,
|
||||
};
|
||||
|
||||
@ -2189,7 +2189,7 @@ pub enum AggregateKind<'tcx> {
|
||||
Adt(&'tcx AdtDef, VariantIdx, SubstsRef<'tcx>, Option<UserTypeAnnotationIndex>, Option<usize>),
|
||||
|
||||
Closure(DefId, SubstsRef<'tcx>),
|
||||
Generator(DefId, GeneratorSubsts<'tcx>, hir::GeneratorMovability),
|
||||
Generator(DefId, SubstsRef<'tcx>, hir::GeneratorMovability),
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, PartialEq, Eq, RustcEncodable, RustcDecodable, HashStable)]
|
||||
|
@ -610,7 +610,7 @@ pub struct VtableImplData<'tcx, N> {
|
||||
#[derive(Clone, PartialEq, Eq, RustcEncodable, RustcDecodable, HashStable)]
|
||||
pub struct VtableGeneratorData<'tcx, N> {
|
||||
pub generator_def_id: DefId,
|
||||
pub substs: ty::GeneratorSubsts<'tcx>,
|
||||
pub substs: SubstsRef<'tcx>,
|
||||
/// Nested obligations. This can be non-empty if the generator
|
||||
/// signature contains associated types.
|
||||
pub nested: Vec<N>
|
||||
|
@ -29,7 +29,7 @@ use crate::traits;
|
||||
use crate::traits::{Clause, Clauses, GoalKind, Goal, Goals};
|
||||
use crate::ty::{self, DefIdTree, Ty, TypeAndMut};
|
||||
use crate::ty::{TyS, TyKind, List};
|
||||
use crate::ty::{AdtKind, AdtDef, GeneratorSubsts, Region, Const};
|
||||
use crate::ty::{AdtKind, AdtDef, Region, Const};
|
||||
use crate::ty::{PolyFnSig, InferTy, ParamTy, ProjectionTy, ExistentialPredicate, Predicate};
|
||||
use crate::ty::RegionKind;
|
||||
use crate::ty::{TyVar, TyVid, IntVar, IntVid, FloatVar, FloatVid, ConstVid};
|
||||
|
@ -1410,7 +1410,7 @@ impl<'tcx> LayoutCx<'tcx, TyCtxt<'tcx>> {
|
||||
use SavedLocalEligibility::*;
|
||||
let tcx = self.tcx;
|
||||
|
||||
let subst_field = |ty: Ty<'tcx>| { ty.subst(tcx, substs.substs) };
|
||||
let subst_field = |ty: Ty<'tcx>| { ty.subst(tcx, substs) };
|
||||
|
||||
let info = tcx.generator_layout(def_id);
|
||||
let (ineligible_locals, assignments) = self.generator_saved_local_eligibility(&info);
|
||||
@ -1429,7 +1429,7 @@ impl<'tcx> LayoutCx<'tcx, TyCtxt<'tcx>> {
|
||||
.map(|local| subst_field(info.field_tys[local]))
|
||||
.map(|ty| tcx.mk_maybe_uninit(ty))
|
||||
.map(|ty| self.layout_of(ty));
|
||||
let prefix_layouts = substs.prefix_tys(def_id, tcx)
|
||||
let prefix_layouts = substs.as_generator().prefix_tys(def_id, tcx)
|
||||
.map(|ty| self.layout_of(ty))
|
||||
.chain(iter::once(Ok(discr_layout)))
|
||||
.chain(promoted_layouts)
|
||||
|
@ -8,7 +8,7 @@
|
||||
use rustc::hir::def_id::DefId;
|
||||
use rustc::mir::interpret::ConstValue;
|
||||
use rustc::ty::subst::SubstsRef;
|
||||
use rustc::ty::{self, Const, GeneratorSubsts, Instance, Ty, TyCtxt};
|
||||
use rustc::ty::{self, Const, Instance, Ty, TyCtxt};
|
||||
use rustc::{bug, hir};
|
||||
use std::fmt::Write;
|
||||
use std::iter;
|
||||
|
@ -2110,7 +2110,7 @@ impl<'tcx> TyS<'tcx> {
|
||||
match self.kind {
|
||||
TyKind::Adt(adt, _) => Some(adt.variant_range()),
|
||||
TyKind::Generator(def_id, substs, _) =>
|
||||
Some(substs.assert_generator().variant_range(def_id, tcx)),
|
||||
Some(substs.as_generator().variant_range(def_id, tcx)),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user