Make parse call arguments uniform.
This commit is contained in:
@@ -129,9 +129,9 @@ impl Engine {
|
||||
let OpAssignment {
|
||||
hash_op_assign,
|
||||
hash_op,
|
||||
op_assign: op_assign_token,
|
||||
op: op_token,
|
||||
pos: op_pos,
|
||||
op_assign,
|
||||
op,
|
||||
pos,
|
||||
} = op_info;
|
||||
|
||||
let mut lock_guard = target.write_lock::<Dynamic>().unwrap();
|
||||
@@ -141,15 +141,15 @@ impl Engine {
|
||||
|
||||
if self.fast_operators() {
|
||||
if let Some((func, need_context)) =
|
||||
get_builtin_op_assignment_fn(op_assign_token.clone(), args[0], args[1])
|
||||
get_builtin_op_assignment_fn(op_assign.clone(), args[0], args[1])
|
||||
{
|
||||
// Built-in found
|
||||
let op = op_assign_token.literal_syntax();
|
||||
auto_restore! { let orig_level = global.level; global.level += 1 }
|
||||
|
||||
let context = if need_context {
|
||||
let op = op_assign.literal_syntax();
|
||||
let source = global.source();
|
||||
Some((self, op, source, &*global, *op_pos).into())
|
||||
Some((self, op, source, &*global, *pos).into())
|
||||
} else {
|
||||
None
|
||||
};
|
||||
@@ -157,23 +157,20 @@ impl Engine {
|
||||
}
|
||||
}
|
||||
|
||||
let op_assign = op_assign_token.literal_syntax();
|
||||
let op = op_token.literal_syntax();
|
||||
let token = Some(op_assign_token.clone());
|
||||
let token = Some(op_assign.clone());
|
||||
let op_assign = op_assign.literal_syntax();
|
||||
|
||||
match self
|
||||
.exec_native_fn_call(global, caches, op_assign, token, hash, args, true, *op_pos)
|
||||
match self.exec_native_fn_call(global, caches, op_assign, token, hash, args, true, *pos)
|
||||
{
|
||||
Ok(_) => (),
|
||||
Err(err) if matches!(*err, ERR::ErrorFunctionNotFound(ref f, ..) if f.starts_with(op_assign)) =>
|
||||
{
|
||||
// Expand to `var = var op rhs`
|
||||
let token = Some(op_token.clone());
|
||||
let token = Some(op.clone());
|
||||
let op = op.literal_syntax();
|
||||
|
||||
*args[0] = self
|
||||
.exec_native_fn_call(
|
||||
global, caches, op, token, *hash_op, args, true, *op_pos,
|
||||
)?
|
||||
.exec_native_fn_call(global, caches, op, token, *hash_op, args, true, *pos)?
|
||||
.0;
|
||||
}
|
||||
Err(err) => return Err(err),
|
||||
|
Reference in New Issue
Block a user