Skip to content

Commit 52033d9

Browse files
committed
[FIX] server: ensure that context value is String
1 parent b87cd9d commit 52033d9

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

server/src/core/python_arch_eval_hooks.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -984,33 +984,33 @@ impl PythonArchEvalHooks {
984984
let mut contexts_to_add = HashMap::new();
985985
if relational {
986986
if let Some(first_param) = parameters.args.get(0) {
987-
contexts_to_add.insert("comodel_name", (first_param, first_param.range()));
987+
contexts_to_add.insert("comodel_name", (first_param, first_param.range(), true));
988988
}
989989
}
990990

991991
// Keyword Arguments for fields that we would like to keep in the context
992992
let context_arguments = [
993-
"comodel_name",
994-
"related",
995-
"compute",
996-
"delegate",
997-
"required",
998-
"default",
993+
("comodel_name", true),
994+
("related", true),
995+
("compute", true),
996+
("delegate", false),
997+
("required", false),
998+
("default", false),
999999
];
10001000
contexts_to_add.extend(
10011001
context_arguments.into_iter()
1002-
.filter_map(|arg_name|
1002+
.filter_map(|(arg_name, only_str)|
10031003
PythonArchEvalHooks::find_special_arguments(&parameters, arg_name)
1004-
.map(|(field_name_expr, arg_range)| (arg_name, (field_name_expr, arg_range)))
1004+
.map(|(field_name_expr, arg_range)| (arg_name, (field_name_expr, arg_range, only_str)))
10051005
)
10061006
);
10071007

1008-
for (arg_name, (field_name_expr, arg_range)) in contexts_to_add {
1008+
for (arg_name, (field_name_expr, arg_range, only_str)) in contexts_to_add {
10091009
let maybe_related_string = Evaluation::expr_to_str(session, field_name_expr, parent.clone(), &parameters.range.start(), false, &mut vec![]).0;
10101010
if let Some(related_string) = maybe_related_string {
10111011
context.insert(S!(arg_name), ContextValue::STRING(related_string.to_string()));
10121012
context.insert(format!("{arg_name}_arg_range"), ContextValue::RANGE(arg_range.clone()));
1013-
} else {
1013+
} else if !only_str {
10141014
let maybe_boolean = Evaluation::expr_to_bool(session, field_name_expr, parent.clone(), &parameters.range.start(), false, &mut vec![]).0;
10151015
if let Some(boolean) = maybe_boolean {
10161016
context.insert(S!(arg_name), ContextValue::BOOLEAN(boolean));

0 commit comments

Comments
 (0)