]> git.lizzy.rs Git - rust.git/commitdiff
rustc: avoid using intern_*(it.collect()) when mk_*(it) works better.
authorEduard-Mihai Burtescu <edy.burt@gmail.com>
Wed, 16 May 2018 06:48:32 +0000 (09:48 +0300)
committerEduard-Mihai Burtescu <edy.burt@gmail.com>
Mon, 21 May 2018 09:12:40 +0000 (12:12 +0300)
src/librustc/ty/mod.rs
src/librustc/ty/relate.rs

index ce7feae0719d06213a0cbf965903e99b683c1873..f4f8bb68b3b65e0051fffcde4b87e3d0093a10c7 100644 (file)
@@ -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);
 
index 4a33f1a1f54d2d268bfa3c2319e28fa0aa46780f..7603ed7102327e1b4bd9b03426a0cd3d1c761416 100644 (file)
@@ -24,7 +24,6 @@
 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 @@ fn relate<'a, 'gcx, R>(relation: &mut R,
                            -> 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 @@ fn relate<'a, 'gcx, R>(relation: &mut R,
                 } 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,