From a66fca3b57a1b3ed77272c2479da4efd7140ca23 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sat, 27 Jun 2026 05:48:29 +0900 Subject: 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) --- crates/shirabe/src/package/locker.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'crates/shirabe/src') 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 { -- cgit v1.3.1