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.rsdiffbeforeafterboth--- a/crates/jrsonnet-stdlib/src/lib.rs
+++ b/crates/jrsonnet-stdlib/src/lib.rs
@@ -80,7 +80,7 @@
("any", builtin_any::INST),
("all", builtin_all::INST),
("member", builtin_member::INST),
- ("contains", builtin_member::INST),
+ ("contains", builtin_contains::INST),
("count", builtin_count::INST),
("avg", builtin_avg::INST),
("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.jsonnetdiffbeforeafterboth1local assertNames(fun, params) = assert test.paramNames(std[fun]) == params: "Wrong params for std.%s, expected %s, got %s" % [fun, params, test.paramNames(std[fun])]; true;23local names = {4 id: ['x'],5 isString: ['v'],6 isNumber: ['v'],7 isBoolean: ['v'],8 isObject: ['v'],9 isArray: ['v'],10 isFunction: ['v'],11 toString: ['a'],12 substr: ['str', 'from', 'len'],13 startsWith: ['a', 'b'],14 endsWith: ['a', 'b'],15 lstripChars: ['str', 'chars'],16 rstripChars: ['str', 'chars'],17 stripChars: ['str', 'chars'],18 stringChars: ['str'],19 parseInt: ['str'],20 parseOctal: ['str'],21 parseHex: ['str'],22 split: ['str', 'c'],23 splitLimit: ['str', 'c', 'maxsplits'],24 splitLimitR: ['str', 'c', 'maxsplits'],25 strReplace: ['str', 'from', 'to'],26 asciiUpper: ['str'],27 asciiLower: ['str'],28 range: ['from', 'to'],29 repeat: ['what', 'count'],30 slice: ['indexable', 'index', 'end', 'step'],31 member: ['arr', 'x'],32 count: ['arr', 'x'],33 mod: ['a', 'b'],34 map: ['func', 'arr'],35 mapWithIndex: ['func', 'arr'],36 mapWithKey: ['func', 'obj'],37 flatMap: ['func', 'arr'],38 join: ['sep', 'arr'],39 lines: ['arr'],40 deepJoin: ['arr'],41 format: ['str', 'vals'],42 foldr: ['func', 'arr', 'init'],43 foldl: ['func', 'arr', 'init'],44 filterMap: ['filter_func', 'map_func', 'arr'],45 assertEqual: ['a', 'b'],46 abs: ['n'],47 sign: ['n'],48 max: ['a', 'b'],49 min: ['a', 'b'],50 clamp: ['x', 'minVal', 'maxVal'],51 flattenArrays: ['arrs'],52 manifestIni: ['ini'],53 manifestToml: ['value'],54 manifestTomlEx: ['value', 'indent'],55 escapeStringJson: ['str_'],56 escapeStringPython: ['str'],57 escapeStringBash: ['str_'],58 escapeStringDollars: ['str_'],59 escapeStringXML: ['str_'],60 manifestJson: ['value'],61 manifestJsonMinified: ['value'],62 manifestJsonEx: ['value', 'indent', 'newline', 'key_val_sep'],63 manifestYamlDoc: ['value', 'indent_array_in_object', 'quote_keys'],64 manifestYamlStream: ['value', 'indent_array_in_object', 'c_document_end', 'quote_keys'],65 manifestPython: ['v'],66 manifestPythonVars: ['conf'],67 manifestXmlJsonml: ['value'],68 base64: ['input'],69 base64DecodeBytes: ['str'],70 base64Decode: ['str'],71 reverse: ['arr'],72 sort: ['arr', 'keyF'],73 uniq: ['arr', 'keyF'],74 set: ['arr', 'keyF'],75 setMember: ['x', 'arr', 'keyF'],76 setUnion: ['a', 'b', 'keyF'],77 setInter: ['a', 'b', 'keyF'],78 setDiff: ['a', 'b', 'keyF'],79 mergePatch: ['target', 'patch'],80 get: ['o', 'f', 'default', 'inc_hidden'],81 objectFields: ['o'],82 objectFieldsAll: ['o'],83 objectHas: ['o', 'f'],84 objectHasAll: ['o', 'f'],85 objectValues: ['o'],86 objectValuesAll: ['o'],87 equals: ['a', 'b'],88 resolvePath: ['f', 'r'],89 prune: ['a'],90 findSubstr: ['pat', 'str'],91 find: ['value', 'arr'],92 all: ['arr'],93 any: ['arr'],9495 makeArray: ['sz', 'func'],96 pow: ['x', 'n'],97 floor: ['x'],98 ceil: ['x'],99 sqrt: ['x'],100 sin: ['x'],101 cos: ['x'],102 tan: ['x'],103 asin: ['x'],104 acos: ['x'],105 atan: ['x'],106 type: ['x'],107 filter: ['func', 'arr'],108 objectHasEx: ['obj', 'fname', 'hidden'],109 length: ['x'],110 objectFieldsEx: ['obj', 'hidden'],111 codepoint: ['str'],112 char: ['n'],113 log: ['x'],114 exp: ['x'],115 mantissa: ['x'],116 exponent: ['x'],117 modulo: ['x', 'y'],118 extVar: ['x'],119 primitiveEquals: ['x', 'y'],120 native: ['x'],121 md5: ['s'],122 trace: ['str', 'rest'],123 parseJson: ['str'],124 parseYaml: ['str'],125 encodeUTF8: ['str'],126 decodeUTF8: ['arr'],127128 sum: ['arr'],129 xor: ['x', 'y'],130131 // C++ jsonnet undocumented132 __compare: ['v1', 'v2'],133 __compare_array: ['arr1', 'arr2'],134 __array_less: ['arr1', 'arr2'],135 __array_greater: ['arr1', 'arr2'],136 __array_less_or_equal: ['arr1', 'arr2'],137 __array_greater_or_equal: ['arr1', 'arr2'],138};139140std.all(std.map(function(key) assertNames(key, names[key]), std.objectFields(names)))1local assertNames(fun, params) = assert test.paramNames(std[fun]) == params: "Wrong params for std.%s, expected %s, got %s" % [fun, params, test.paramNames(std[fun])]; true;23local names = {4 id: ['x'],5 isString: ['v'],6 isNumber: ['v'],7 isBoolean: ['v'],8 isObject: ['v'],9 isArray: ['v'],10 isFunction: ['v'],11 toString: ['a'],12 substr: ['str', 'from', 'len'],13 startsWith: ['a', 'b'],14 endsWith: ['a', 'b'],15 lstripChars: ['str', 'chars'],16 rstripChars: ['str', 'chars'],17 stripChars: ['str', 'chars'],18 stringChars: ['str'],19 parseInt: ['str'],20 parseOctal: ['str'],21 parseHex: ['str'],22 split: ['str', 'c'],23 splitLimit: ['str', 'c', 'maxsplits'],24 splitLimitR: ['str', 'c', 'maxsplits'],25 strReplace: ['str', 'from', 'to'],26 asciiUpper: ['str'],27 asciiLower: ['str'],28 range: ['from', 'to'],29 repeat: ['what', 'count'],30 slice: ['indexable', 'index', 'end', 'step'],31 member: ['arr', 'x'],32 count: ['arr', 'x'],33 mod: ['a', 'b'],34 map: ['func', 'arr'],35 mapWithIndex: ['func', 'arr'],36 mapWithKey: ['func', 'obj'],37 flatMap: ['func', 'arr'],38 join: ['sep', 'arr'],39 lines: ['arr'],40 deepJoin: ['arr'],41 format: ['str', 'vals'],42 foldr: ['func', 'arr', 'init'],43 foldl: ['func', 'arr', 'init'],44 filterMap: ['filter_func', 'map_func', 'arr'],45 assertEqual: ['a', 'b'],46 abs: ['n'],47 sign: ['n'],48 max: ['a', 'b'],49 min: ['a', 'b'],50 clamp: ['x', 'minVal', 'maxVal'],51 flattenArrays: ['arrs'],52 manifestIni: ['ini'],53 manifestToml: ['value'],54 manifestTomlEx: ['value', 'indent'],55 escapeStringJson: ['str_'],56 escapeStringPython: ['str'],57 escapeStringBash: ['str_'],58 escapeStringDollars: ['str_'],59 escapeStringXML: ['str_'],60 manifestJson: ['value'],61 manifestJsonMinified: ['value'],62 manifestJsonEx: ['value', 'indent', 'newline', 'key_val_sep'],63 manifestYamlDoc: ['value', 'indent_array_in_object', 'quote_keys'],64 manifestYamlStream: ['value', 'indent_array_in_object', 'c_document_end', 'quote_keys'],65 manifestPython: ['v'],66 manifestPythonVars: ['conf'],67 manifestXmlJsonml: ['value'],68 base64: ['input'],69 base64DecodeBytes: ['str'],70 base64Decode: ['str'],71 reverse: ['arr'],72 sort: ['arr', 'keyF'],73 uniq: ['arr', 'keyF'],74 set: ['arr', 'keyF'],75 setMember: ['x', 'arr', 'keyF'],76 setUnion: ['a', 'b', 'keyF'],77 setInter: ['a', 'b', 'keyF'],78 setDiff: ['a', 'b', 'keyF'],79 mergePatch: ['target', 'patch'],80 get: ['o', 'f', 'default', 'inc_hidden'],81 objectFields: ['o'],82 objectFieldsAll: ['o'],83 objectHas: ['o', 'f'],84 objectHasAll: ['o', 'f'],85 objectValues: ['o'],86 objectValuesAll: ['o'],87 equals: ['a', 'b'],88 resolvePath: ['f', 'r'],89 prune: ['a'],90 findSubstr: ['pat', 'str'],91 find: ['value', 'arr'],92 all: ['arr'],93 any: ['arr'],9495 makeArray: ['sz', 'func'],96 pow: ['x', 'n'],97 floor: ['x'],98 ceil: ['x'],99 sqrt: ['x'],100 sin: ['x'],101 cos: ['x'],102 tan: ['x'],103 asin: ['x'],104 acos: ['x'],105 atan: ['x'],106 type: ['x'],107 filter: ['func', 'arr'],108 objectHasEx: ['obj', 'fname', 'hidden'],109 length: ['x'],110 objectFieldsEx: ['obj', 'hidden'],111 codepoint: ['str'],112 char: ['n'],113 log: ['x'],114 exp: ['x'],115 mantissa: ['x'],116 exponent: ['x'],117 modulo: ['x', 'y'],118 extVar: ['x'],119 primitiveEquals: ['x', 'y'],120 native: ['x'],121 md5: ['s'],122 trace: ['str', 'rest'],123 parseJson: ['str'],124 parseYaml: ['str'],125 encodeUTF8: ['str'],126 decodeUTF8: ['arr'],127128 sum: ['arr'],129 avg: ['arr', 'onEmpty'],130 minArray: ['arr', 'keyF', 'onEmpty'],131 maxArray: ['arr', 'keyF', 'onEmpty'],132 remove: ['arr', 'elem'],133 contains: ['arr', 'elem'],134 removeAt: ['arr', 'at'],135136 equalsIgnoreCase: ['str1', 'str2'],137 isEmpty: ['str'],138139 xor: ['x', 'y'],140 xnor: ['x', 'y'],141 isInteger: ['x'],142 isDecimal: ['x'],143 isEven: ['x'],144 isOdd: ['x'],145 round: ['x'],146147 sha1: ['str'],148 sha256: ['str'],149 sha512: ['str'],150 sha3: ['str'],151152 objectKeysValues: ['o'],153 objectKeysValuesAll: ['o'],154 objectRemoveKey: ['obj', 'key'],155156 // C++ jsonnet undocumented157 __compare: ['v1', 'v2'],158 __compare_array: ['arr1', 'arr2'],159 __array_less: ['arr1', 'arr2'],160 __array_greater: ['arr1', 'arr2'],161 __array_less_or_equal: ['arr1', 'arr2'],162 __array_greater_or_equal: ['arr1', 'arr2'],163};164165std.all(std.map(function(key) assertNames(key, names[key]), std.objectFields(names)))166&& std.all([167 assert std.objectHasAll(names, key): ('function "%s" is not defined in names'168 % key); true,169 for key in std.objectFieldsAll(std)170 if key != 'thisFile'171])