diff options
| author | varkor <github@varkor.com> | 2018-07-23 14:48:37 +0100 |
|---|---|---|
| committer | varkor <github@varkor.com> | 2018-08-19 20:02:33 +0100 |
| commit | 9bb40b09b78f650b75d22a869a8b1bf18937aba3 (patch) | |
| tree | 15e37efe8f03191900bccf5acd4da18f91d46bc1 | |
| parent | 9cfe92c8ae51caa2e7d8da7d171e59844d0a7149 (diff) | |
| download | rust-9bb40b09b78f650b75d22a869a8b1bf18937aba3.tar.gz rust-9bb40b09b78f650b75d22a869a8b1bf18937aba3.zip | |
Make prohibit_generics take IntoIterators
| -rw-r--r-- | src/librustc_typeck/astconv.rs | 2 | ||||
| -rw-r--r-- | src/librustc_typeck/check/mod.rs | 20 |
2 files changed, 8 insertions, 14 deletions
diff --git a/src/librustc_typeck/astconv.rs b/src/librustc_typeck/astconv.rs index 18bd00d43d6..772ec39d8f0 100644 --- a/src/librustc_typeck/astconv.rs +++ b/src/librustc_typeck/astconv.rs @@ -988,7 +988,7 @@ impl<'o, 'gcx: 'tcx, 'tcx> dyn AstConv<'gcx, 'tcx>+'o { self.normalize_ty(span, tcx.mk_projection(item_def_id, trait_ref.substs)) } - pub fn prohibit_generics(&self, segments: &[hir::PathSegment]) { + pub fn prohibit_generics<'a, T: IntoIterator<Item = &'a hir::PathSegment>>(&self, segments: T) { for segment in segments { segment.with_generic_args(|generic_args| { let (mut err_for_lt, mut err_for_ty) = (false, false); diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index 66f5e57ef6d..c1bf6b0fe31 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -4913,19 +4913,13 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { for PathSeg(_, index) in &path_segs { generic_segs.insert(index); } - let segs: Vec<_> = segments - .iter() - .enumerate() - .filter_map(|(index, seg)| { - if !generic_segs.contains(&index) { - Some(seg) - } else { - None - } - }) - .cloned() - .collect(); - AstConv::prohibit_generics(self, &segs); + AstConv::prohibit_generics(self, segments.iter().enumerate().filter_map(|(index, seg)| { + if !generic_segs.contains(&index) { + Some(seg) + } else { + None + } + })); match def { Def::Local(nid) | Def::Upvar(nid, ..) => { |
