Revise on_def_var API.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
//! Module defining functions for evaluating a statement.
|
||||
|
||||
use super::{EvalContext, EvalState, GlobalRuntimeState, Target};
|
||||
use crate::api::events::VarDefInfo;
|
||||
use crate::ast::{
|
||||
BinaryExpr, Expr, Ident, OpAssignment, Stmt, SwitchCases, TryCatchBlock, AST_OPTION_FLAGS::*,
|
||||
};
|
||||
@@ -818,9 +819,15 @@ impl Engine {
|
||||
let export = options.contains(AST_OPTION_EXPORTED);
|
||||
|
||||
let result = if let Some(ref filter) = self.def_var_filter {
|
||||
let shadowing = scope.contains(var_name);
|
||||
let scope_level = state.scope_level;
|
||||
let will_shadow = scope.contains(var_name);
|
||||
let nesting_level = state.scope_level;
|
||||
let is_const = entry_type == AccessMode::ReadOnly;
|
||||
let info = VarDefInfo {
|
||||
name: var_name,
|
||||
is_const,
|
||||
nesting_level,
|
||||
will_shadow,
|
||||
};
|
||||
let context = EvalContext {
|
||||
engine: self,
|
||||
scope,
|
||||
@@ -828,10 +835,10 @@ impl Engine {
|
||||
state,
|
||||
lib,
|
||||
this_ptr,
|
||||
level: level,
|
||||
level,
|
||||
};
|
||||
|
||||
match filter(var_name, true, is_const, scope_level, shadowing, &context) {
|
||||
match filter(true, info, &context) {
|
||||
Ok(true) => None,
|
||||
Ok(false) => {
|
||||
Some(Err(
|
||||
|
Reference in New Issue
Block a user