diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-06 19:25:10 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-06 19:25:10 +0900 |
| commit | 57e9f6a1c6cf47d222343f2469ecbb91c569f9e1 (patch) | |
| tree | 5762b4ac7e4b0861aea64bac285ecca0b1134be9 /crates/shirabe/src | |
| parent | 91509a729cb89275ef4e9a8e064f90cdee8a06c1 (diff) | |
| download | php-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.rs | 8 |
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; } |
