difftreelog
fix early return from std.set
in: master
1 file changed
crates/jrsonnet-stdlib/src/sort.rsdiffbeforeafterboth57 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>>>()?;