aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-06 19:25:10 +0900
committernsfisis <nsfisis@gmail.com>2026-06-06 19:25:10 +0900
commit57e9f6a1c6cf47d222343f2469ecbb91c569f9e1 (patch)
tree5762b4ac7e4b0861aea64bac285ecca0b1134be9 /crates/shirabe/src
parent91509a729cb89275ef4e9a8e064f90cdee8a06c1 (diff)
downloadphp-shirabe-57e9f6a1c6cf47d222343f2469ecbb91c569f9e1.tar.gz
php-shirabe-57e9f6a1c6cf47d222343f2469ecbb91c569f9e1.tar.zst
php-shirabe-57e9f6a1c6cf47d222343f2469ecbb91c569f9e1.zip
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) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src')
-rw-r--r--crates/shirabe/src/repository/repository_utils.rs8
1 files changed, 6 insertions, 2 deletions
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;
}