From 19fbd919986e99287168f40aa11003a11aa43d3a Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sat, 4 May 2019 18:41:48 +0200 Subject: Simplify subst / subst_bound_vars a bit --- crates/ra_hir/src/ty.rs | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'crates') diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs index 6a79af35b..f2b37b208 100644 --- a/crates/ra_hir/src/ty.rs +++ b/crates/ra_hir/src/ty.rs @@ -411,11 +411,7 @@ impl Ty { pub fn subst(self, substs: &Substs) -> Ty { self.fold(&mut |ty| match ty { Ty::Param { idx, name } => { - if (idx as usize) < substs.len() { - substs[idx as usize].clone() - } else { - Ty::Param { idx, name } - } + substs.get(idx as usize).cloned().unwrap_or(Ty::Param { idx, name }) } ty => ty, }) @@ -424,13 +420,7 @@ impl Ty { /// Substitutes `Ty::Bound` vars (as opposed to type parameters). pub fn subst_bound_vars(self, substs: &Substs) -> Ty { self.fold(&mut |ty| match ty { - Ty::Bound(idx) => { - if (idx as usize) < substs.len() { - substs[idx as usize].clone() - } else { - Ty::Bound(idx) - } - } + Ty::Bound(idx) => substs.get(idx as usize).cloned().unwrap_or(Ty::Bound(idx)), ty => ty, }) } -- cgit v1.2.3