From aa270b53045cc1ce779447f4f19448236e9c4c67 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 21 Jun 2026 20:12:28 +0900 Subject: feat(php-shim): implement array sort/merge/unique/splice helpers Implement array_unique, array_splice, array_merge_recursive, krsort, ksort, asort, sort_with_flags and sort_natural_flag_case, plus the strnatcmp/strnatcasecmp port they rely on. Drop array_key_last and array_splice_mixed in favour of existing helpers at the call sites. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../src/symfony/console/completion/completion_input.rs | 12 +++++------- .../src/symfony/console/helper/table.rs | 4 ++-- 2 files changed, 7 insertions(+), 9 deletions(-) (limited to 'crates/shirabe-external-packages') diff --git a/crates/shirabe-external-packages/src/symfony/console/completion/completion_input.rs b/crates/shirabe-external-packages/src/symfony/console/completion/completion_input.rs index 482e7e1..bd51b8e 100644 --- a/crates/shirabe-external-packages/src/symfony/console/completion/completion_input.rs +++ b/crates/shirabe-external-packages/src/symfony/console/completion/completion_input.rs @@ -135,13 +135,11 @@ impl CompletionInput { let argument_value = self.inner.inner.arguments[¤t_argument_name].clone(); self.completion_name = Some(current_argument_name.clone()); - if let PhpMixed::Array(argument_value) = &argument_value { - self.completion_value = if !argument_value.is_empty() { - argument_value[shirabe_php_shim::array_key_last(argument_value)].to_string() - } else { - // null - String::new() - }; + if let PhpMixed::List(argument_value) = &argument_value { + self.completion_value = argument_value + .last() + .map(|v| v.to_string()) + .unwrap_or_default(); } else { self.completion_value = argument_value.to_string(); } diff --git a/crates/shirabe-external-packages/src/symfony/console/helper/table.rs b/crates/shirabe-external-packages/src/symfony/console/helper/table.rs index 9c868c4..27b07aa 100644 --- a/crates/shirabe-external-packages/src/symfony/console/helper/table.rs +++ b/crates/shirabe-external-packages/src/symfony/console/helper/table.rs @@ -990,10 +990,10 @@ impl Table { Self::vec_set(&mut row, *column, unmerged_row[column].clone()); } } - shirabe_php_shim::array_splice_mixed( + shirabe_php_shim::array_splice( &mut rows, unmerged_row_key, - 0, + Some(0), vec![Self::from_row_vec(row)], ); } -- cgit v1.3.1