diff --git a/tvix/eval/src/builtins/mod.rs b/tvix/eval/src/builtins/mod.rs index 99a63c979..49f047543 100644 --- a/tvix/eval/src/builtins/mod.rs +++ b/tvix/eval/src/builtins/mod.rs @@ -43,11 +43,10 @@ fn pure_builtins() -> Vec { Ok(Value::Bool(matches!(args[0], Value::Float(_)))) }), Builtin::new("isFunction", 1, |args| { - Ok(Value::Bool(match args[0] { - Value::Closure(_) => true, - Value::Builtin(_) => true, - _ => false, - })) + Ok(Value::Bool(matches!( + args[0], + Value::Closure(_) | Value::Builtin(_) + ))) }), Builtin::new("isInt", 1, |args| { Ok(Value::Bool(matches!(args[0], Value::Integer(_)))) diff --git a/tvix/eval/src/compiler/mod.rs b/tvix/eval/src/compiler/mod.rs index 7b92b8a09..faf67135e 100644 --- a/tvix/eval/src/compiler/mod.rs +++ b/tvix/eval/src/compiler/mod.rs @@ -424,15 +424,14 @@ impl Compiler { fn compile_has_attr(&mut self, node: ast::HasAttr) { // Put the attribute set on the stack. self.compile(node.expr().unwrap()); - let mut count = 0; // Push all path fragments with an operation for fetching the // next nested element, for all fragments except the last one. - for fragment in node.attrpath().unwrap().attrs() { + for (count, fragment) in node.attrpath().unwrap().attrs().enumerate() { if count > 0 { self.chunk().push_op(OpCode::OpAttrOrNotFound); } - count += 1; + self.compile_attr(fragment); } @@ -950,7 +949,7 @@ impl Compiler { self.scope_mut().locals.push(Local { depth, - name: name.into(), + name, node: Some(node), phantom: false, used: false, diff --git a/tvix/eval/src/eval.rs b/tvix/eval/src/eval.rs index 2f4bd2345..add621af6 100644 --- a/tvix/eval/src/eval.rs +++ b/tvix/eval/src/eval.rs @@ -1,7 +1,5 @@ use std::path::PathBuf; -use rnix; - use crate::{ builtins::global_builtins, errors::{ErrorKind, EvalResult}, diff --git a/tvix/eval/src/opcode.rs b/tvix/eval/src/opcode.rs index 39a32d3ba..2ad4aa1f9 100644 --- a/tvix/eval/src/opcode.rs +++ b/tvix/eval/src/opcode.rs @@ -7,6 +7,7 @@ pub struct ConstantIdx(pub usize); #[derive(Clone, Copy, Debug)] pub struct CodeIdx(pub usize); +#[allow(clippy::enum_variant_names)] #[warn(variant_size_differences)] #[derive(Clone, Copy, Debug)] pub enum OpCode { diff --git a/tvix/eval/src/value/attrs.rs b/tvix/eval/src/value/attrs.rs index fffd316cb..51f741a21 100644 --- a/tvix/eval/src/value/attrs.rs +++ b/tvix/eval/src/value/attrs.rs @@ -91,7 +91,7 @@ impl Display for NixAttrs { } AttrsRep::Map(map) => { - for (name, value) in map.iter() { + for (name, value) in map { write!(f, "{} = {}; ", name.ident_str(), value)?; } } diff --git a/tvix/eval/src/value/builtin.rs b/tvix/eval/src/value/builtin.rs index 84582e298..e876c2355 100644 --- a/tvix/eval/src/value/builtin.rs +++ b/tvix/eval/src/value/builtin.rs @@ -58,7 +58,7 @@ impl Builtin { } // Function is not yet ready to be called. - return Ok(Value::Builtin(self)); + Ok(Value::Builtin(self)) } }