diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-08-02 08:42:53 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-08-02 08:42:53 +0900 |
| commit | 3e367f78eec3521106979461fda717926717515a (patch) | |
| tree | 980141af2c614178ebe757df1f933c2070df8fdb /crates/shirabe/Cargo.toml | |
| parent | 0d62424c7067c49d5b7e7a599a7c64189511c2b4 (diff) | |
| download | php-shirabe-3e367f78eec3521106979461fda717926717515a.tar.gz php-shirabe-3e367f78eec3521106979461fda717926717515a.tar.zst php-shirabe-3e367f78eec3521106979461fda717926717515a.zip | |
fix(downloader): restore late binding in getLocalChanges/update paths
PHP's FileDownloader::getLocalChanges and ::update call $this->download()
/ $this->install() / $this->remove() / $this->getInstallOperationAppendix(),
which late-bind to the concrete downloader class. The Rust port embeds the
parent as `inner`, so delegating these methods to FileDownloader pinned the
calls to FileDownloader's own implementations: `status` built the compare
tree without extracting the archive (flagging every file of dist-installed
packages as changed), and `update` re-installed the raw dist file instead
of extracting it.
Thread the concrete downloader in as `this: &dyn DownloaderInterface` via
shared helpers (base_get_local_changes / base_update) and pass `self` from
each delegating downloader.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/Cargo.toml')
0 files changed, 0 insertions, 0 deletions
