diff options
| author | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2018-05-16 09:48:32 +0300 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2018-05-21 12:12:40 +0300 |
| commit | d47dc98767b9362f82f14339fd22a4858e8eb7a5 (patch) | |
| tree | 97914d11023909ffa414d4248f8d4565f31592db | |
| parent | 98686ca2944db341b0933e341b1e9029a905e322 (diff) | |
| download | rust-d47dc98767b9362f82f14339fd22a4858e8eb7a5.tar.gz rust-d47dc98767b9362f82f14339fd22a4858e8eb7a5.zip | |
rustc: avoid using intern_*(it.collect()) when mk_*(it) works better.
| -rw-r--r-- | src/librustc/ty/mod.rs | 4 | ||||
| -rw-r--r-- | src/librustc/ty/relate.rs | 7 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/librustc/ty/mod.rs b/src/librustc/ty/mod.rs index ce7feae0719..f4f8bb68b3b 100644 --- a/src/librustc/ty/mod.rs +++ b/src/librustc/ty/mod.rs @@ -2678,11 +2678,11 @@ fn adt_sized_constraint<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, -> &'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); diff --git a/src/librustc/ty/relate.rs b/src/librustc/ty/relate.rs index 4a33f1a1f54..7603ed71023 100644 --- a/src/librustc/ty/relate.rs +++ b/src/librustc/ty/relate.rs @@ -24,7 +24,6 @@ use std::rc::Rc; 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>>; @@ -154,6 +153,8 @@ impl<'tcx> Relate<'tcx> for ty::FnSig<'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))); @@ -175,9 +176,9 @@ impl<'tcx> Relate<'tcx> for ty::FnSig<'tcx> { } 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, |
