aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-27 05:48:29 +0900
committernsfisis <nsfisis@gmail.com>2026-06-27 05:48:29 +0900
commita66fca3b57a1b3ed77272c2479da4efd7140ca23 (patch)
tree6d2a8aa27de4f66254acd659a32894e1b3f0f378 /crates
parentf87b930a5bf21d2f60a53151599e0953b7c1f99e (diff)
downloadphp-shirabe-a66fca3b57a1b3ed77272c2479da4efd7140ca23.tar.gz
php-shirabe-a66fca3b57a1b3ed77272c2479da4efd7140ca23.tar.zst
php-shirabe-a66fca3b57a1b3ed77272c2479da4efd7140ca23.zip
fix(locker): build InstalledRepository with locked and root repos
getMissingRequirementInfo created an empty InstalledRepository (both repos were left commented out as a stub), so every locked requirement was reported as "not present in the lock file". Pass [lockedRepo, rootRepo] to the constructor as the PHP does. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates')
-rw-r--r--crates/shirabe/src/package/locker.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/crates/shirabe/src/package/locker.rs b/crates/shirabe/src/package/locker.rs
index 926429a..3a87061 100644
--- a/crates/shirabe/src/package/locker.rs
+++ b/crates/shirabe/src/package/locker.rs
@@ -30,6 +30,7 @@ use crate::repository::InstalledRepository;
use crate::repository::LockArrayRepository;
use crate::repository::LockArrayRepositoryHandle;
use crate::repository::PlatformRepository;
+use crate::repository::RepositoryInterfaceHandle;
use crate::repository::RootPackageRepository;
use crate::util::Git as GitUtil;
use crate::util::ProcessExecutor;
@@ -911,10 +912,13 @@ impl Locker {
description: "Required (in require-dev)".to_string(),
});
}
- let root_repo = RootPackageRepository::new(RootPackageInterfaceHandle::dup(&package));
+ let root_repo: RepositoryInterfaceHandle = RepositoryInterfaceHandle::new(
+ RootPackageRepository::new(RootPackageInterfaceHandle::dup(&package)),
+ );
for set in &sets {
- let installed_repo = InstalledRepository::new(vec![/* set.repo, root_repo */]);
+ let installed_repo =
+ InstalledRepository::new(vec![set.repo.clone().into(), root_repo.clone()]);
// PHP: call_user_func([$package, $set['method']])
let links = match set.method.as_str() {
@@ -986,8 +990,6 @@ impl Locker {
missing_requirements = true;
}
}
- let _ = root_repo;
- let _ = installed_repo;
}
if missing_requirements {