fix: release eq
This commit is contained in:
@@ -87,9 +87,9 @@ impl Evaluate for ir::BinOp {
|
||||
}
|
||||
Mul => lhs.mul(rhs),
|
||||
Div => lhs.div(rhs)?,
|
||||
Eq => Value::eq(&mut lhs, rhs),
|
||||
Eq => Value::eq(&mut lhs, &rhs),
|
||||
Neq => {
|
||||
Value::eq(&mut lhs, rhs);
|
||||
Value::eq(&mut lhs, &rhs);
|
||||
lhs.not();
|
||||
}
|
||||
Lt => lhs.lt(rhs),
|
||||
@@ -197,9 +197,7 @@ impl Evaluate for ir::If {
|
||||
|
||||
impl Evaluate for ir::LoadFunc {
|
||||
fn eval(&self, engine: &mut Engine, env: &mut Env) -> Result<Value> {
|
||||
let idx = engine.func_offset + self.idx;
|
||||
let result = Value::Func(idx).ok();
|
||||
Ok(result.unwrap())
|
||||
Value::Func(self.idx).ok()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -207,14 +205,14 @@ impl Evaluate for ir::Call {
|
||||
fn eval(&self, engine: &mut Engine, env: &mut Env) -> Result<Value> {
|
||||
let mut func = self.func.eval(engine, env)?;
|
||||
func.force(engine, env)?;
|
||||
let result = func.call(
|
||||
func.call(
|
||||
self.args
|
||||
.iter()
|
||||
.map(|arg| arg.eval(engine, env))
|
||||
.collect::<Result<_>>()?,
|
||||
engine,
|
||||
env,
|
||||
);
|
||||
)?;
|
||||
Ok(func.ok().unwrap())
|
||||
}
|
||||
}
|
||||
@@ -264,7 +262,7 @@ impl Evaluate for ir::ConcatStrings {
|
||||
}
|
||||
}
|
||||
|
||||
impl Evaluate for ir::String {
|
||||
impl Evaluate for ir::Str {
|
||||
fn eval(&self, _: &mut Engine, _: &mut Env) -> Result<Value> {
|
||||
let result = Value::String(self.val.clone()).ok();
|
||||
Ok(result.unwrap())
|
||||
|
||||
Reference in New Issue
Block a user