-> &'tcx [Ty<'tcx>] {
let def = tcx.adt_def(def_id);
- let result = tcx.intern_type_list(&def.variants.iter().flat_map(|v| {
+ let result = tcx.mk_type_list(def.variants.iter().flat_map(|v| {
v.fields.last()
}).flat_map(|f| {
def.sized_constraint_for_ty(tcx, tcx.type_of(f.did))
- }).collect::<Vec<_>>());
+ }));
debug!("adt_sized_constraint: {:?} => {:?}", def, result);
use std::iter;
use rustc_target::spec::abi;
use hir as ast;
-use rustc_data_structures::accumulate_vec::AccumulateVec;
pub type RelateResult<'tcx, T> = Result<T, TypeError<'tcx>>;
-> RelateResult<'tcx, ty::FnSig<'tcx>>
where R: TypeRelation<'a, 'gcx, 'tcx>, 'gcx: 'a+'tcx, 'tcx: 'a
{
+ let tcx = relation.tcx();
+
if a.variadic != b.variadic {
return Err(TypeError::VariadicMismatch(
expected_found(relation, &a.variadic, &b.variadic)));
} else {
relation.relate_with_variance(ty::Contravariant, &a, &b)
}
- }).collect::<Result<AccumulateVec<[_; 8]>, _>>()?;
+ });
Ok(ty::FnSig {
- inputs_and_output: relation.tcx().intern_type_list(&inputs_and_output),
+ inputs_and_output: tcx.mk_type_list(inputs_and_output)?,
variadic: a.variadic,
unsafety,
abi,