From 81b9fc9d92bb74aa8428ae4db39bd84e8c16095c Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 20 Jun 2026 18:34:54 +0900 Subject: refactor(php-shim): drop Box wrapping from PhpMixed List/Array The List and Array variants of PhpMixed boxed their elements unnecessarily. Store PhpMixed values directly and update all callers accordingly. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../src/symfony/console/question/question.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'crates/shirabe-external-packages/src/symfony/console/question/question.rs') diff --git a/crates/shirabe-external-packages/src/symfony/console/question/question.rs b/crates/shirabe-external-packages/src/symfony/console/question/question.rs index 78ae9b2..9ec3aef 100644 --- a/crates/shirabe-external-packages/src/symfony/console/question/question.rs +++ b/crates/shirabe-external-packages/src/symfony/console/question/question.rs @@ -133,13 +133,13 @@ impl Question { // array_merge(array_keys($values), array_values($values)) let mut merged: Vec = array.keys().map(|k| PhpMixed::String(k.clone())).collect(); - merged.extend(array.values().map(|v| (**v).clone())); + merged.extend(array.values().map(|v| v.clone())); merged } else { // array_values($values) match &values { - PhpMixed::List(list) => list.iter().map(|v| (**v).clone()).collect(), - PhpMixed::Array(array) => array.values().map(|v| (**v).clone()).collect(), + PhpMixed::List(list) => list.iter().cloned().collect(), + PhpMixed::Array(array) => array.values().map(|v| v.clone()).collect(), _ => unreachable!(), } }; @@ -154,8 +154,8 @@ impl Question { // Non-array iterables are not modeled by PhpMixed; extract any // list/array elements, otherwise treat as an empty iterator. let cached: Vec = match values { - PhpMixed::List(list) => list.into_iter().map(|v| *v).collect(), - PhpMixed::Array(array) => array.into_values().map(|v| *v).collect(), + PhpMixed::List(list) => list.into_iter().collect(), + PhpMixed::Array(array) => array.into_values().map(|v| v).collect(), _ => Vec::new(), }; Some(Box::new(move |_input: &str| Some(cached.clone()))) -- cgit v1.3.1