git.delta.rocks / jrsonnet / refs/commits / 884db009a29e

difftreelog

fix early return from std.set

Yaroslav Bolyukin2023-04-18parent: #7a424b0.patch.diff
in: master

1 file changed

modifiedcrates/jrsonnet-stdlib/src/sort.rsdiffbeforeafterboth
57 Val::Str(s) => s.clone(),57 Val::Str(s) => s.clone(),
58 _ => unreachable!(),58 _ => unreachable!(),
59 }),59 }),
60 SortKeyType::Unknown => unreachable!(),60 SortKeyType::Unknown => unreachable!("list is not empty, as checked in sort"),
61 };61 };
62 Ok(values)62 Ok(values)
63}63}
81 Val::Str(s) => s.clone(),81 Val::Str(s) => s.clone(),
82 _ => unreachable!(),82 _ => unreachable!(),
83 }),83 }),
84 SortKeyType::Unknown => unreachable!(),84 SortKeyType::Unknown => unreachable!("list is not empty, as checked in sort"),
85 };85 };
86 Ok(vk.into_iter().map(|v| v.0).collect())86 Ok(vk.into_iter().map(|v| v.0).collect())
87}87}
103#[builtin]103#[builtin]
104#[allow(non_snake_case)]104#[allow(non_snake_case)]
105pub fn builtin_sort(arr: ArrValue, keyF: Option<FuncVal>) -> Result<ArrValue> {105pub fn builtin_sort(arr: ArrValue, keyF: Option<FuncVal>) -> Result<ArrValue> {
106 if arr.len() <= 1 {
107 return Ok(arr);
108 }
109 super::sort::sort(106 super::sort::sort(arr, keyF.unwrap_or_else(FuncVal::identity))
110 arr,
111 keyF.unwrap_or_else(FuncVal::identity),
160#[builtin]154#[builtin]
161#[allow(non_snake_case)]155#[allow(non_snake_case)]
162pub fn builtin_set(arr: ArrValue, keyF: Option<FuncVal>) -> Result<ArrValue> {156pub fn builtin_set(arr: ArrValue, keyF: Option<FuncVal>) -> Result<ArrValue> {
157 if arr.len() <= 1 {
158 return Ok(arr);
159 }
163 let keyF = keyF.unwrap_or(FuncVal::identity());160 let keyF = keyF.unwrap_or(FuncVal::identity());
164 if keyF.is_identity() {161 if keyF.is_identity() {
165 let arr = arr.iter().collect::<Result<Vec<Val>>>()?;162 let arr = arr.iter().collect::<Result<Vec<Val>>>()?;