aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/command/show_command.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-28 23:20:44 +0900
committernsfisis <nsfisis@gmail.com>2026-05-28 23:28:39 +0900
commit7715c98aaf3e3962cabbcf740e93fa817a2f8027 (patch)
tree21203ac1139a321250a4a3690feaf97822716faa /crates/shirabe/src/command/show_command.rs
parenteea4efe87e455742ec17881ee93d8095925e8516 (diff)
downloadphp-shirabe-7715c98aaf3e3962cabbcf740e93fa817a2f8027.tar.gz
php-shirabe-7715c98aaf3e3962cabbcf740e93fa817a2f8027.tar.zst
php-shirabe-7715c98aaf3e3962cabbcf740e93fa817a2f8027.zip
feat: resolve TODOs unblocked by package handle get_repository
PackageInterfaceHandle::get_repository and handle upcasts have been available since the recent Rc<RefCell<_>> handle refactors; wire them at sites still carrying TODO(phase-c) markers. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/command/show_command.rs')
-rw-r--r--crates/shirabe/src/command/show_command.rs9
1 files changed, 3 insertions, 6 deletions
diff --git a/crates/shirabe/src/command/show_command.rs b/crates/shirabe/src/command/show_command.rs
index 2b2dd94..5a9c676 100644
--- a/crates/shirabe/src/command/show_command.rs
+++ b/crates/shirabe/src/command/show_command.rs
@@ -211,11 +211,9 @@ impl ShowCommand {
&& input.get_option("installed").as_bool() != Some(true)
&& input.get_option("locked").as_bool() != Some(true)
{
- let _rc = self.require_composer(None, None)?;
- // TODO(phase-c): composer.get_package() returns &dyn RootPackageInterface, not a
- // RootPackageInterfaceHandle, so it cannot be shared into RootPackageRepository::new yet.
+ let composer = self.require_composer(None, None)?;
let package: crate::package::RootPackageInterfaceHandle =
- todo!("share composer.get_package() as a RootPackageInterfaceHandle");
+ composer.borrow_partial().get_package().clone();
if input.get_option("name-only").as_bool() == Some(true) {
self.get_io().write(&package.get_name());
@@ -234,8 +232,7 @@ impl ShowCommand {
repos = RepositoryInterfaceHandle::new(InstalledRepository::new(vec![
RepositoryInterfaceHandle::new(RootPackageRepository::new(package.clone())),
]));
- // TODO(phase-c): need to convert the root package handle to a CompletePackageInterfaceHandle
- single_package = todo!("convert package to CompletePackageInterfaceHandle");
+ single_package = Some(package.clone().into());
} else if input.get_option("platform").as_bool() == Some(true) {
installed_repo = RepositoryInterfaceHandle::new(InstalledRepository::new(vec![
RepositoryInterfaceHandle::new(make_platform_repo()?),