diff options
| author | Nadrieril <nadrieril@gmail.com> | 2019-10-27 17:14:43 +0000 |
|---|---|---|
| committer | Nadrieril <nadrieril+git@gmail.com> | 2019-11-01 17:23:04 +0000 |
| commit | a96d7005c6d1e4b1977e8bf93e28a886ceb443eb (patch) | |
| tree | 92378761af25a6b2e9777e286b1d530cf55116d5 /src | |
| parent | 8956c1ed1d95915ac17612cd93df38243b875790 (diff) | |
| download | rust-a96d7005c6d1e4b1977e8bf93e28a886ceb443eb.tar.gz rust-a96d7005c6d1e4b1977e8bf93e28a886ceb443eb.zip | |
Clarifications suggested by varkor
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_mir/hair/pattern/_match.rs | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/librustc_mir/hair/pattern/_match.rs b/src/librustc_mir/hair/pattern/_match.rs index fbe265666d1..8e06955c7cd 100644 --- a/src/librustc_mir/hair/pattern/_match.rs +++ b/src/librustc_mir/hair/pattern/_match.rs @@ -720,23 +720,25 @@ impl<'tcx> Constructor<'tcx> { /// must have as many elements as this constructor's arity. /// /// Examples: - /// self: Single - /// ty: tuple of 3 elements - /// pats: [10, 20, _] => (10, 20, _) + /// `self`: `Constructor::Single` + /// `ty`: `(u32, u32, u32)` + /// `pats`: `[10, 20, _]` + /// returns `(10, 20, _)` /// - /// self: Option::Some - /// ty: Option<bool> - /// pats: [false] => Some(false) + /// `self`: `Constructor::Variant(Option::Some)` + /// `ty`: `Option<bool>` + /// `pats`: `[false]` + /// returns `Some(false)` fn apply<'a>( &self, cx: &MatchCheckCtxt<'a, 'tcx>, ty: Ty<'tcx>, pats: impl IntoIterator<Item = Pat<'tcx>>, ) -> Pat<'tcx> { - let mut pats = pats.into_iter(); + let mut subpatterns = pats.into_iter(); let pat = match ty.kind { ty::Adt(..) | ty::Tuple(..) => { - let pats = pats + let subpatterns = subpatterns .enumerate() .map(|(i, p)| FieldPat { field: Field::new(i), pattern: p }) .collect(); @@ -747,20 +749,20 @@ impl<'tcx> Constructor<'tcx> { adt_def: adt, substs, variant_index: self.variant_index_for_adt(cx, adt), - subpatterns: pats, + subpatterns, } } else { - PatKind::Leaf { subpatterns: pats } + PatKind::Leaf { subpatterns } } } else { - PatKind::Leaf { subpatterns: pats } + PatKind::Leaf { subpatterns } } } - ty::Ref(..) => PatKind::Deref { subpattern: pats.nth(0).unwrap() }, + ty::Ref(..) => PatKind::Deref { subpattern: subpatterns.nth(0).unwrap() }, ty::Slice(_) | ty::Array(..) => { - PatKind::Slice { prefix: pats.collect(), slice: None, suffix: vec![] } + PatKind::Slice { prefix: subpatterns.collect(), slice: None, suffix: vec![] } } _ => match *self { @@ -779,8 +781,8 @@ impl<'tcx> Constructor<'tcx> { /// Like `apply`, but where all the subpatterns are wildcards `_`. fn apply_wildcards<'a>(&self, cx: &MatchCheckCtxt<'a, 'tcx>, ty: Ty<'tcx>) -> Pat<'tcx> { - let pats = self.wildcard_subpatterns(cx, ty).rev(); - self.apply(cx, ty, pats) + let subpatterns = self.wildcard_subpatterns(cx, ty).rev(); + self.apply(cx, ty, subpatterns) } } |
