aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/command
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/command')
-rw-r--r--crates/shirabe/src/command/package_discovery_trait.rs6
-rw-r--r--crates/shirabe/src/command/update_command.rs16
2 files changed, 9 insertions, 13 deletions
diff --git a/crates/shirabe/src/command/package_discovery_trait.rs b/crates/shirabe/src/command/package_discovery_trait.rs
index cd6c5a0..58361b5 100644
--- a/crates/shirabe/src/command/package_discovery_trait.rs
+++ b/crates/shirabe/src/command/package_discovery_trait.rs
@@ -531,8 +531,7 @@ pub trait PackageDiscoveryTrait {
name,
None,
preferred_stability,
- // TODO(phase-b): Box<dyn ...> cannot be cloned; original PHP shares reference
- Some(PlatformRequirementFilterFactory::ignore_nothing()),
+ Some(platform_requirement_filter.clone()),
0,
None,
shirabe_php_shim::PhpMixed::Null,
@@ -620,8 +619,7 @@ pub trait PackageDiscoveryTrait {
name,
None,
preferred_stability,
- // TODO(phase-b): Box<dyn ...> cannot be cloned; reusing factory result
- Some(PlatformRequirementFilterFactory::ignore_nothing()),
+ Some(platform_requirement_filter.clone()),
RepositorySet::ALLOW_UNACCEPTABLE_STABILITIES,
None,
shirabe_php_shim::PhpMixed::Null,
diff --git a/crates/shirabe/src/command/update_command.rs b/crates/shirabe/src/command/update_command.rs
index b2dab1c..e7a7437 100644
--- a/crates/shirabe/src/command/update_command.rs
+++ b/crates/shirabe/src/command/update_command.rs
@@ -718,19 +718,17 @@ impl UpdateCommand {
IndexMap::new(),
IndexMap::new(),
);
- // TODO(phase-b): array_filter requires Clone on Box<dyn RepositoryInterface>
- // which PHP classes must not implement. Skipping the repo filter for now.
- let _ = &composer
+ let repositories: Vec<crate::repository::RepositoryInterfaceHandle> = composer
.get_repository_manager()
.borrow()
- .get_repositories();
- let _ = |repository: &crate::repository::RepositoryInterfaceHandle| -> bool {
- !repository.is::<PlatformRepository>()
- };
+ .get_repositories()
+ .iter()
+ .filter(|repository| !repository.is::<PlatformRepository>())
+ .cloned()
+ .collect();
repository_set.add_repository(crate::repository::RepositoryInterfaceHandle::new(
- CompositeRepository::new(Vec::new()),
+ CompositeRepository::new(repositories),
))?;
- let _ = array_filter::<i64, fn(&i64) -> bool>;
VersionSelector::new(
std::rc::Rc::new(std::cell::RefCell::new(repository_set)),