From 57e9f6a1c6cf47d222343f2469ecbb91c569f9e1 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 6 Jun 2026 19:25:10 +0900 Subject: feat(repository-utils): recurse into transitive dependencies Implement the self-recursion in filterRequiredPackages so that packages required transitively are collected, matching the PHP source. BasePackageHandle is a type alias for PackageInterfaceHandle, so no cast is needed. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/shirabe/src/repository/repository_utils.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'crates') diff --git a/crates/shirabe/src/repository/repository_utils.rs b/crates/shirabe/src/repository/repository_utils.rs index 4522039..38c5016 100644 --- a/crates/shirabe/src/repository/repository_utils.rs +++ b/crates/shirabe/src/repository/repository_utils.rs @@ -27,8 +27,12 @@ impl RepositoryUtils { let already_in_bucket = bucket.iter().any(|b| b.ptr_eq(candidate)); if !already_in_bucket { bucket.push(candidate.clone()); - // TODO(phase-b): recursion requires &dyn PackageInterface; cast pending. - let _ = (requires.contains_key("dummy"),); + bucket = Self::filter_required_packages( + packages, + candidate.clone(), + false, + bucket, + ); } break; } -- cgit v1.3.1