aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/dependency_resolver/rule.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-27 00:49:33 +0900
committernsfisis <nsfisis@gmail.com>2026-05-27 00:54:09 +0900
commitcc5d73c05a0abca2eebcc8a6afa0b1543ee49850 (patch)
tree091a0d01232d927f13f3ab22700701804980f231 /crates/shirabe/src/dependency_resolver/rule.rs
parentc5850d62beabef0a6bcc4cf6a179589c0ba8f405 (diff)
downloadphp-shirabe-cc5d73c05a0abca2eebcc8a6afa0b1543ee49850.tar.gz
php-shirabe-cc5d73c05a0abca2eebcc8a6afa0b1543ee49850.tar.zst
php-shirabe-cc5d73c05a0abca2eebcc8a6afa0b1543ee49850.zip
refactor(package): pass package handles by value throughout
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/dependency_resolver/rule.rs')
-rw-r--r--crates/shirabe/src/dependency_resolver/rule.rs19
1 files changed, 8 insertions, 11 deletions
diff --git a/crates/shirabe/src/dependency_resolver/rule.rs b/crates/shirabe/src/dependency_resolver/rule.rs
index afb0318..1681509 100644
--- a/crates/shirabe/src/dependency_resolver/rule.rs
+++ b/crates/shirabe/src/dependency_resolver/rule.rs
@@ -234,9 +234,9 @@ impl Rule {
if let Some(_locked_repo) = locked_repo {
let packages: Vec<BasePackageHandle> = todo!("locked_repo.get_packages()");
for package in packages {
- let p: &BasePackageHandle = &package;
+ let p = package.clone();
if p.get_name() == link.get_target() {
- if pool.is_unacceptable_fixed_or_locked_package(p) {
+ if pool.is_unacceptable_fixed_or_locked_package(p.clone()) {
return true;
}
if !link.get_constraint().matches(
@@ -250,8 +250,7 @@ impl Rule {
return true;
}
// required package was locked but has been unlocked and still matches
- if !request.is_locked_package(todo!("package as &dyn PackageInterface"))
- {
+ if !request.is_locked_package(p) {
return true;
}
break;
@@ -275,9 +274,9 @@ impl Rule {
if let Some(_locked_repo) = locked_repo {
let packages: Vec<BasePackageHandle> = todo!("locked_repo.get_packages()");
for package in packages {
- let p: &BasePackageHandle = &package;
+ let p = package.clone();
if p.get_name() == *package_name {
- if pool.is_unacceptable_fixed_or_locked_package(p) {
+ if pool.is_unacceptable_fixed_or_locked_package(p.clone()) {
return true;
}
if !constraint.matches(
@@ -378,8 +377,7 @@ impl Rule {
.collect();
if packages_non_alias.len() == 1 {
let package = &packages_non_alias[0];
- // TODO(phase-b): request.is_locked_package signature
- if request.is_locked_package(todo!("package as &dyn PackageInterface")) {
+ if request.is_locked_package(package.clone()) {
return format!(
"{} is locked to version {} and an update of this package was not requested.",
package.get_pretty_name(),
@@ -409,7 +407,7 @@ impl Rule {
};
let package = self.deduplicate_default_branch_alias(package_in);
- if request.is_locked_package(todo!("package as &dyn PackageInterface")) {
+ if request.is_locked_package(package.clone()) {
return format!(
"{} is locked to version {} and an update of this package was not requested.",
package.get_pretty_name(),
@@ -504,8 +502,7 @@ impl Rule {
requires.push(pool.literal_to_package(*literal));
}
- let text =
- link.get_pretty_string(source_package.as_rc().borrow().as_package_interface());
+ let text = link.get_pretty_string(source_package.clone());
if requires.len() > 0 {
format!(
"{} -> satisfiable by {}.",