aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/event_dispatcher/event_dispatcher.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/event_dispatcher/event_dispatcher.rs')
-rw-r--r--crates/shirabe/src/event_dispatcher/event_dispatcher.rs17
1 files changed, 13 insertions, 4 deletions
diff --git a/crates/shirabe/src/event_dispatcher/event_dispatcher.rs b/crates/shirabe/src/event_dispatcher/event_dispatcher.rs
index f4575ce..ae86fcf 100644
--- a/crates/shirabe/src/event_dispatcher/event_dispatcher.rs
+++ b/crates/shirabe/src/event_dispatcher/event_dispatcher.rs
@@ -31,7 +31,6 @@ use crate::installer::InstallerEvent;
use crate::installer::PackageEvent;
use crate::io::ConsoleIO;
use crate::io::IOInterface;
-use crate::package::PackageInterface;
use crate::plugin::CommandEvent;
use crate::plugin::PreCommandRunEvent;
use crate::repository::RepositoryInterface;
@@ -1260,7 +1259,9 @@ impl EventDispatcher {
let generator = generator.borrow();
let mut hash_input = packages
.iter()
- .map(|p: &Box<dyn PackageInterface>| format!("{}/{}", p.get_name(), p.get_version()))
+ .map(|p: &crate::package::PackageInterfaceHandle| {
+ format!("{}/{}", p.get_name(), p.get_version())
+ })
.collect::<Vec<_>>()
.join(",");
// TODO(plugin): polymorphic isDevMode propagation for ScriptEvent / PackageEvent / InstallerEvent
@@ -1278,11 +1279,19 @@ impl EventDispatcher {
// Composer is &Composer here so we cannot take a mut borrow. Defer until shared ownership.
let _ = &generator;
let _ = packages;
- let package_map: Vec<(Box<dyn PackageInterface>, Option<String>)> =
+ let package_map: Vec<(crate::package::PackageInterfaceHandle, Option<String>)> =
todo!("build_package_map requires &mut InstallationManager");
// TODO(phase-b): parse_autoloads also expects the filtered dev packages list
// (PhpMixed in this port).
- let map = generator.parse_autoloads(package_map, package, shirabe_php_shim::PhpMixed::Null);
+ let map = generator.parse_autoloads(
+ package_map,
+ package
+ .as_rc()
+ .borrow()
+ .as_root_package_interface()
+ .unwrap(),
+ shirabe_php_shim::PhpMixed::Null,
+ );
if self.loader.is_some() {
self.loader.as_mut().unwrap().unregister();