chore: cargo clippy
This commit is contained in:
@@ -13,7 +13,7 @@ pub struct Env<K: Hash + Eq + Clone, V: Clone> {
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct LetEnv<K: Hash + Eq + Clone, V: Clone> {
|
||||
map: Let<K, V>,
|
||||
map: LetNode<K, V>,
|
||||
last: Option<Rc<LetEnv<K, V>>>,
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ pub struct With<K: Hash + Eq, V> {
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
enum Let<K: Hash + Eq, V> {
|
||||
enum LetNode<K: Hash + Eq, V> {
|
||||
Let(Rc<HashMap<K, V>>),
|
||||
SingleArg(K, V),
|
||||
MultiArg(Rc<HashMap<K, V>>),
|
||||
@@ -100,13 +100,13 @@ impl<K: Hash + Eq + Clone, V: Clone> Env<K, V> {
|
||||
impl<K: Hash + Eq + Clone, V: Clone> LetEnv<K, V> {
|
||||
pub fn new(map: Rc<HashMap<K, V>>) -> Self {
|
||||
Self {
|
||||
map: Let::Let(map),
|
||||
map: LetNode::Let(map),
|
||||
last: None,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn lookup(&self, symbol: &K) -> Option<&V> {
|
||||
use self::Let::*;
|
||||
use self::LetNode::*;
|
||||
match &self.map {
|
||||
Let(map) | MultiArg(map) => {
|
||||
if let Some(val) = map.get(symbol) {
|
||||
@@ -126,14 +126,14 @@ impl<K: Hash + Eq + Clone, V: Clone> LetEnv<K, V> {
|
||||
let cloned = self.clone();
|
||||
let mutref = Rc::make_mut(self);
|
||||
mutref.last = Some(cloned);
|
||||
mutref.map = Let::SingleArg(ident, val);
|
||||
mutref.map = LetNode::SingleArg(ident, val);
|
||||
}
|
||||
|
||||
pub fn enter_let(self: &mut Rc<Self>, map: Rc<HashMap<K, V>>) {
|
||||
let cloned = self.clone();
|
||||
let mutref = Rc::make_mut(self);
|
||||
mutref.last = Some(cloned);
|
||||
mutref.map = Let::Let(map);
|
||||
mutref.map = LetNode::Let(map);
|
||||
}
|
||||
|
||||
pub fn leave(self: &mut Rc<Self>) {
|
||||
|
||||
Reference in New Issue
Block a user