From 06f619e8b1654e506840d17dc1cbff4f2d9795c3 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Fri, 17 Jan 2020 11:26:34 +0000 Subject: Simplify a bit --- dhall/src/semantics/core/var.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'dhall/src/semantics/core/var.rs') diff --git a/dhall/src/semantics/core/var.rs b/dhall/src/semantics/core/var.rs index a110632..7c2c4de 100644 --- a/dhall/src/semantics/core/var.rs +++ b/dhall/src/semantics/core/var.rs @@ -1,3 +1,5 @@ +use std::collections::HashMap; + use crate::syntax::{Label, V}; /// Stores a pair of variables: a normal one and one @@ -38,6 +40,20 @@ impl AlphaVar { // Can't fail since delta is positive self.shift(1, &x.into()).unwrap() } + pub(crate) fn under_multiple_binders( + &self, + shift_map: &HashMap, + ) -> Self + where + Self: Clone, + { + let mut v = self.clone(); + for (x, n) in shift_map { + // Can't fail since delta is positive + v = v.shift(*n as isize, &x.into()).unwrap(); + } + v + } } impl Binder { -- cgit v1.2.3