From 90c7acbd8e6eb1ddaf8680de6a1ef9f2417d50ce Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 26 Jun 2026 00:38:27 +0900 Subject: feat(dependency-resolver): wire operation get_package and unblock solver tests Override OperationInterface::get_package for Install/Uninstall/MarkAlias* operations so trait-object dispatch no longer hits the default todo!(), and implement Rule::is_caused_by_lock's locked-repository lookup via Request::get_locked_repository (LockArrayRepository::get_packages is infallible). Change PackageInterface::get_type to return String (matching PHP getType(): string) so AliasPackage can delegate live to its aliasOf handle across the RefCell instead of an impossible &str borrow. Un-ignores 25 SolverTest cases; 2 alias cases stay ignored pending a real solver alias-resolution discrepancy. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../dependency_resolver/operation/mark_alias_uninstalled_operation.rs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'crates/shirabe/src/dependency_resolver/operation/mark_alias_uninstalled_operation.rs') diff --git a/crates/shirabe/src/dependency_resolver/operation/mark_alias_uninstalled_operation.rs b/crates/shirabe/src/dependency_resolver/operation/mark_alias_uninstalled_operation.rs index 1b107f0..3c0de33 100644 --- a/crates/shirabe/src/dependency_resolver/operation/mark_alias_uninstalled_operation.rs +++ b/crates/shirabe/src/dependency_resolver/operation/mark_alias_uninstalled_operation.rs @@ -44,6 +44,10 @@ impl OperationInterface for MarkAliasUninstalledOperation { .get_full_pretty_version(true, crate::package::DisplayMode::SourceRefIfDev), ) } + + fn get_package(&self) -> crate::package::PackageInterfaceHandle { + self.package.clone().into() + } } impl std::fmt::Display for MarkAliasUninstalledOperation { -- cgit v1.3.1