From f9ca9a19c1b0b15d8ee15e1e64ed59fc5ad22ba5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jasper=20Gr=C3=A4flich?= <graeflich@cyberagentur.de> Date: Wed, 11 Oct 2023 18:07:43 +0200 Subject: [PATCH] Appease clippy --- use-based-refs/interpreter/src/eval.rs | 9 +++------ use-based-refs/interpreter/src/lib.rs | 2 +- use-based-refs/interpreter/src/typecheck.rs | 7 +++---- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/use-based-refs/interpreter/src/eval.rs b/use-based-refs/interpreter/src/eval.rs index 422ce90..f185d54 100644 --- a/use-based-refs/interpreter/src/eval.rs +++ b/use-based-refs/interpreter/src/eval.rs @@ -20,12 +20,9 @@ fn eval_ctx(ast: Node, ctx: &mut HashMap<String, Value>) -> Result<Value> { ctx.insert(ident.clone(), value); Value::Unit } - crate::Node::Ident(ident) => ctx - .get(&ident) - .ok_or(Error::Eval(format!( - "Ident error: `{ident}` is not defined" - )))? - .clone(), + crate::Node::Ident(ident) => *ctx.get(&ident).ok_or(Error::Eval(format!( + "Ident error: `{ident}` is not defined" + )))?, }) } diff --git a/use-based-refs/interpreter/src/lib.rs b/use-based-refs/interpreter/src/lib.rs index 0c724e5..4b2b889 100644 --- a/use-based-refs/interpreter/src/lib.rs +++ b/use-based-refs/interpreter/src/lib.rs @@ -27,7 +27,7 @@ pub enum Node { } /// `λ_UR` value, result of a computation. -#[derive(Debug, PartialEq, Eq, Clone)] +#[derive(Debug, PartialEq, Eq, Clone, Copy)] pub enum Value { Num(u32), Unit, diff --git a/use-based-refs/interpreter/src/typecheck.rs b/use-based-refs/interpreter/src/typecheck.rs index 659533b..15c7186 100644 --- a/use-based-refs/interpreter/src/typecheck.rs +++ b/use-based-refs/interpreter/src/typecheck.rs @@ -13,7 +13,7 @@ fn typecheck_ctx(ast: &Node, ctx: &mut HashMap<String, Type>) -> Result<Type> { // because a Seq contains at least one element .try_fold(Type::Diverging, |_, n| typecheck_ctx(n, ctx))?, Node::Let { ident, expr, ty } => { - let expr_ty = typecheck_ctx(&expr, ctx)?; + let expr_ty = typecheck_ctx(expr, ctx)?; // If we have some type annotation, it may not be different from the type of `expr` if let Some(true) = ty.map(|ty| ty != expr_ty) { return Err(Error::Type(format!( @@ -27,10 +27,9 @@ fn typecheck_ctx(ast: &Node, ctx: &mut HashMap<String, Type>) -> Result<Type> { ))))?; Type::Unit } - Node::Ident(ident) => ctx + Node::Ident(ident) => *ctx .get(ident) - .ok_or(Error::Name(format!("`{ident}` is not defined")))? - .clone(), + .ok_or(Error::Name(format!("`{ident}` is not defined")))?, }) } -- GitLab