Skip to content

Commit d62d525

Browse files
committed
fix copilot issues
1 parent ed02ca2 commit d62d525

File tree

4 files changed

+9
-14
lines changed

4 files changed

+9
-14
lines changed

dsc/src/subcommand.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -697,7 +697,7 @@ fn list_functions(functions: &FunctionDispatcher, function_name: Option<&String>
697697
write_table = true;
698698
}
699699
let mut include_separator = false;
700-
let accepted_arg_types= [
700+
let returned_types= [
701701
(FunctionArgKind::Array, "a"),
702702
(FunctionArgKind::Boolean, "b"),
703703
(FunctionArgKind::Number, "n"),
@@ -724,8 +724,8 @@ fn list_functions(functions: &FunctionDispatcher, function_name: Option<&String>
724724

725725
if write_table {
726726
// construct arg_types from '-' times number of accepted_arg_types
727-
let mut arg_types = "-".repeat(accepted_arg_types.len());
728-
for (i, (arg_type, letter)) in accepted_arg_types.iter().enumerate() {
727+
let mut arg_types = "-".repeat(returned_types.len());
728+
for (i, (arg_type, letter)) in returned_types.iter().enumerate() {
729729
if function.return_types.contains(arg_type) {
730730
arg_types.replace_range(i..=i, letter);
731731
}

dsc_lib/locales/en-us.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,10 +205,9 @@ argCountRequired = "Function '%{name}' requires between %{min_args} and %{max_ar
205205
noArrayArgs = "Function '%{name}' does not accept array arguments, accepted types are: %{accepted_args_string}"
206206
noBooleanArgs = "Function '%{name}' does not accept boolean arguments, accepted types are: %{accepted_args_string}"
207207
noNumberArgs = "Function '%{name}' does not accept number arguments, accepted types are: %{accepted_args_string}"
208+
noNullArgs = "Function '%{name}' does not accept null arguments, accepted types are: %{accepted_args_string}"
208209
noObjectArgs = "Function '%{name}' does not accept object arguments, accepted types are: %{accepted_args_string}"
209210
noStringArgs = "Function '%{name}' does not accept string arguments, accepted types are: %{accepted_args_string}"
210-
tooFewArgs = "Function '%{name}' requires at least %{count} arguments"
211-
tooManyArgs = "Function '%{name}' does not accept more than %{count} arguments"
212211

213212
[functions.add]
214213
description = "Adds two or more numbers together"

dsc_lib/src/functions/if.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ impl Function for If {
2222
accepted_arg_ordered_types: vec![
2323
vec![FunctionArgKind::Boolean],
2424
vec![FunctionArgKind::String, FunctionArgKind::Number, FunctionArgKind::Array, FunctionArgKind::Object],
25-
vec![FunctionArgKind::String, FunctionArgKind::Number, FunctionArgKind::Array, FunctionArgKind::Object]
25+
vec![FunctionArgKind::String, FunctionArgKind::Number, FunctionArgKind::Array, FunctionArgKind::Object],
2626
],
2727
remaining_arg_accepted_types: None,
2828
return_types: vec![FunctionArgKind::String, FunctionArgKind::Number, FunctionArgKind::Array, FunctionArgKind::Object],

dsc_lib/src/functions/mod.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -189,14 +189,6 @@ impl FunctionDispatcher {
189189
return Err(DscError::Parser(t!("functions.argCountRequired", name = name, min = min_args, max = max_args).to_string()));
190190
}
191191

192-
// iterate over the args and check if they match the order of accepted_arg_types, any remaining args must match the remaining_arg_types
193-
if args.len() < metadata.accepted_arg_ordered_types.len() {
194-
return Err(DscError::Parser(t!("functions.tooFewArgs", name = name, count = metadata.accepted_arg_ordered_types.len()).to_string()));
195-
}
196-
if args.len() > metadata.accepted_arg_ordered_types.len() && metadata.remaining_arg_accepted_types.is_none() {
197-
return Err(DscError::Parser(t!("functions.tooManyArgs", name = name, count = metadata.accepted_arg_ordered_types.len()).to_string()));
198-
}
199-
200192
for (index, value) in args.iter().enumerate() {
201193
if index >= metadata.accepted_arg_ordered_types.len() {
202194
break;
@@ -206,6 +198,8 @@ impl FunctionDispatcher {
206198
return Err(DscError::Parser(t!("functions.noArrayArgs", name = name, accepted_args_string = metadata.accepted_arg_ordered_types[index].iter().map(std::string::ToString::to_string).collect::<Vec<_>>().join(", ")).to_string()));
207199
} else if value.is_boolean() && !metadata.accepted_arg_ordered_types[index].contains(&FunctionArgKind::Boolean) {
208200
return Err(DscError::Parser(t!("functions.noBooleanArgs", name = name, accepted_args_string = metadata.accepted_arg_ordered_types[index].iter().map(std::string::ToString::to_string).collect::<Vec<_>>().join(", ")).to_string()));
201+
} else if value.is_null() && !metadata.accepted_arg_ordered_types[index].contains(&FunctionArgKind::Null) {
202+
return Err(DscError::Parser(t!("functions.noNullArgs", name = name, accepted_args_string = metadata.accepted_arg_ordered_types[index].iter().map(std::string::ToString::to_string).collect::<Vec<_>>().join(", ")).to_string()));
209203
} else if value.is_number() && !metadata.accepted_arg_ordered_types[index].contains(&FunctionArgKind::Number) {
210204
return Err(DscError::Parser(t!("functions.noNumberArgs", name = name, accepted_args_string = metadata.accepted_arg_ordered_types[index].iter().map(std::string::ToString::to_string).collect::<Vec<_>>().join(", ")).to_string()));
211205
} else if value.is_object() && !metadata.accepted_arg_ordered_types[index].contains(&FunctionArgKind::Object) {
@@ -222,6 +216,8 @@ impl FunctionDispatcher {
222216
return Err(DscError::Parser(t!("functions.noArrayArgs", name = name, accepted_args_string = remaining_arg_types.iter().map(std::string::ToString::to_string).collect::<Vec<_>>().join(", ")).to_string()));
223217
} else if value.is_boolean() && !remaining_arg_types.contains(&FunctionArgKind::Boolean) {
224218
return Err(DscError::Parser(t!("functions.noBooleanArgs", name = name, accepted_args_string = remaining_arg_types.iter().map(std::string::ToString::to_string).collect::<Vec<_>>().join(", ")).to_string()));
219+
} else if value.is_null() && !remaining_arg_types.contains(&FunctionArgKind::Null) {
220+
return Err(DscError::Parser(t!("functions.noNullArgs", name = name, accepted_args_string = remaining_arg_types.iter().map(std::string::ToString::to_string).collect::<Vec<_>>().join(", ")).to_string()));
225221
} else if value.is_number() && !remaining_arg_types.contains(&FunctionArgKind::Number) {
226222
return Err(DscError::Parser(t!("functions.noNumberArgs", name = name, accepted_args_string = remaining_arg_types.iter().map(std::string::ToString::to_string).collect::<Vec<_>>().join(", ")).to_string()));
227223
} else if value.is_object() && !remaining_arg_types.contains(&FunctionArgKind::Object) {

0 commit comments

Comments
 (0)