difftreelog
fix std function argument names
in: master
6 files changed
crates/jrsonnet-stdlib/src/arrays.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/arrays.rs
+++ b/crates/jrsonnet-stdlib/src/arrays.rs
@@ -255,9 +255,9 @@
}
#[builtin]
-pub fn builtin_remove_at(arr: ArrValue, index: usize) -> Result<ArrValue> {
- let newArrLeft = arr.clone().slice(None, Some(index), None);
- let newArrRight = arr.slice(Some(index + 1), None, None);
+pub fn builtin_remove_at(arr: ArrValue, at: usize) -> Result<ArrValue> {
+ let newArrLeft = arr.clone().slice(None, Some(at), None);
+ let newArrRight = arr.slice(Some(at + 1), None, None);
Ok(ArrValue::extended(
newArrLeft.unwrap_or(ArrValue::empty()),
crates/jrsonnet-stdlib/src/hash.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/hash.rs
+++ b/crates/jrsonnet-stdlib/src/hash.rs
@@ -6,25 +6,25 @@
}
#[builtin]
-pub fn builtin_sha256(s: IStr) -> String {
+pub fn builtin_sha256(str: IStr) -> String {
use sha2::digest::Digest;
- format!("{:x}", sha2::Sha256::digest(s.as_bytes()))
+ format!("{:x}", sha2::Sha256::digest(str.as_bytes()))
}
#[builtin]
-pub fn builtin_sha512(s: IStr) -> String {
+pub fn builtin_sha512(str: IStr) -> String {
use sha2::digest::Digest;
- format!("{:x}", sha2::Sha512::digest(s.as_bytes()))
+ format!("{:x}", sha2::Sha512::digest(str.as_bytes()))
}
#[builtin]
-pub fn builtin_sha1(s: IStr) -> String {
+pub fn builtin_sha1(str: IStr) -> String {
use sha1::digest::Digest;
- format!("{:x}", sha1::Sha1::digest(s.as_bytes()))
+ format!("{:x}", sha1::Sha1::digest(str.as_bytes()))
}
#[builtin]
-pub fn builtin_sha3(s: IStr) -> String {
+pub fn builtin_sha3(str: IStr) -> String {
use sha3::digest::Digest;
- format!("{:x}", sha3::Sha3_512::digest(s.as_bytes()))
+ format!("{:x}", sha3::Sha3_512::digest(str.as_bytes()))
}
crates/jrsonnet-stdlib/src/lib.rsdiffbeforeafterboth80 ("any", builtin_any::INST),80 ("any", builtin_any::INST),81 ("all", builtin_all::INST),81 ("all", builtin_all::INST),82 ("member", builtin_member::INST),82 ("member", builtin_member::INST),83 ("contains", builtin_member::INST),83 ("contains", builtin_contains::INST),84 ("count", builtin_count::INST),84 ("count", builtin_count::INST),85 ("avg", builtin_avg::INST),85 ("avg", builtin_avg::INST),86 ("removeAt", builtin_remove_at::INST),86 ("removeAt", builtin_remove_at::INST),crates/jrsonnet-stdlib/src/misc.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/misc.rs
+++ b/crates/jrsonnet-stdlib/src/misc.rs
@@ -57,12 +57,12 @@
this: &builtin_trace,
loc: CallLocation,
str: Val,
- rest: Thunk<Val>,
+ rest: Option<Thunk<Val>>,
) -> Result<Val> {
this.settings.borrow().trace_printer.print_trace(
loc,
- match str {
- Val::Str(s) => s.into_flat(),
+ match &str {
+ Val::Str(s) => s.clone().into_flat(),
Val::Func(f) => format!("{f:?}").into(),
v => v
.manifest(JsonFormat::std_to_json(
@@ -75,7 +75,11 @@
.into(),
},
);
- rest.evaluate()
+ if let Some(rest) = rest {
+ rest.evaluate()
+ } else {
+ Ok(str)
+ }
}
#[allow(clippy::comparison_chain)]
crates/jrsonnet-stdlib/src/strings.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/strings.rs
+++ b/crates/jrsonnet-stdlib/src/strings.rs
@@ -33,8 +33,8 @@
}
#[builtin]
-pub fn builtin_equals_ignore_case(x: String, y: String) -> bool {
- x.to_ascii_lowercase() == y.to_ascii_lowercase()
+pub fn builtin_equals_ignore_case(str1: String, str2: String) -> bool {
+ str1.to_ascii_lowercase() == str2.to_ascii_lowercase()
}
#[builtin]
tests/suite/std_param_names.jsonnetdiffbeforeafterboth--- a/tests/suite/std_param_names.jsonnet
+++ b/tests/suite/std_param_names.jsonnet
@@ -126,8 +126,33 @@
decodeUTF8: ['arr'],
sum: ['arr'],
+ avg: ['arr', 'onEmpty'],
+ minArray: ['arr', 'keyF', 'onEmpty'],
+ maxArray: ['arr', 'keyF', 'onEmpty'],
+ remove: ['arr', 'elem'],
+ contains: ['arr', 'elem'],
+ removeAt: ['arr', 'at'],
+
+ equalsIgnoreCase: ['str1', 'str2'],
+ isEmpty: ['str'],
+
xor: ['x', 'y'],
+ xnor: ['x', 'y'],
+ isInteger: ['x'],
+ isDecimal: ['x'],
+ isEven: ['x'],
+ isOdd: ['x'],
+ round: ['x'],
+ sha1: ['str'],
+ sha256: ['str'],
+ sha512: ['str'],
+ sha3: ['str'],
+
+ objectKeysValues: ['o'],
+ objectKeysValuesAll: ['o'],
+ objectRemoveKey: ['obj', 'key'],
+
// C++ jsonnet undocumented
__compare: ['v1', 'v2'],
__compare_array: ['arr1', 'arr2'],
@@ -138,3 +163,9 @@
};
std.all(std.map(function(key) assertNames(key, names[key]), std.objectFields(names)))
+&& std.all([
+ assert std.objectHasAll(names, key): ('function "%s" is not defined in names'
+ % key); true,
+ for key in std.objectFieldsAll(std)
+ if key != 'thisFile'
+])