diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-23 03:07:15 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-23 15:48:00 +0900 |
| commit | e068a9d644fde6659a88accd55b3f1d0d9d7cf46 (patch) | |
| tree | bb719a70eb8c840957a94a5601df8961055ceb0f /crates/shirabe/src/downloader/git_downloader.rs | |
| parent | 60eb89529c8af2e4477e0bb65ed9e0f2dc7d3dd7 (diff) | |
| download | php-shirabe-e068a9d644fde6659a88accd55b3f1d0d9d7cf46.tar.gz php-shirabe-e068a9d644fde6659a88accd55b3f1d0d9d7cf46.tar.zst php-shirabe-e068a9d644fde6659a88accd55b3f1d0d9d7cf46.zip | |
refactor(promise): rewrite promise bodies to async/await
Mechanically convert promise-returning function bodies to async/await:
resolve() returns the value directly, forwarding calls get .await, and
simple .then chains become await sequences. Also collapse the installer
double-Option (Result<Option<Option<PhpMixed>>> -> Result<Option<PhpMixed>>).
Hard spots that depend on the Loop::wait / job-machine boundary
(accept/reject orchestration, closures capturing &mut self, batch waits)
are left intact and marked with TODO(phase-c-promise) for manual porting.
The crate does not compile yet; traits still need #[async_trait].
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/downloader/git_downloader.rs')
| -rw-r--r-- | crates/shirabe/src/downloader/git_downloader.rs | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/crates/shirabe/src/downloader/git_downloader.rs b/crates/shirabe/src/downloader/git_downloader.rs index e6bc16b..e43d31b 100644 --- a/crates/shirabe/src/downloader/git_downloader.rs +++ b/crates/shirabe/src/downloader/git_downloader.rs @@ -66,7 +66,7 @@ impl GitDownloader { ) -> Result<Option<PhpMixed>> { // Do not create an extra local cache when repository is already local if Filesystem::is_local_path(url) { - return Ok(promise::resolve(None)); + return Ok(None); } GitUtil::clean_env(&self.inner.process); @@ -129,7 +129,7 @@ impl GitDownloader { .into()); } - Ok(promise::resolve(None)) + Ok(None) } pub(crate) async fn do_install( @@ -282,7 +282,7 @@ impl GitDownloader { let _ = new_ref; } - Ok(promise::resolve(None)) + Ok(None) } pub(crate) async fn do_update( @@ -448,7 +448,7 @@ impl GitDownloader { self.update_origin_url(&path, target.get_source_url().unwrap()); } - Ok(promise::resolve(None)) + Ok(None) } pub fn get_local_changes(&self, _package: &dyn PackageInterface, path: &str) -> Option<String> { @@ -717,23 +717,23 @@ impl GitDownloader { let changes = match self.get_local_changes(package, &path) { Some(c) => c, - None => return Ok(promise::resolve(None)), + None => return Ok(None), }; if !self.inner.io.is_interactive() { let discard_changes = self.inner.config.borrow_mut().get("discard-changes"); if discard_changes.as_bool() == Some(true) { - return self.discard_changes(&path); + return self.discard_changes(&path).await; } if discard_changes.as_string() == Some("stash") { if !update { - return self.inner.clean_changes(package, &path, update); + return self.inner.clean_changes(package, &path, update).await; } - return self.stash_changes(&path); + return self.stash_changes(&path).await; } - return self.inner.clean_changes(package, &path, update); + return self.inner.clean_changes(package, &path, update).await; } let changes: Vec<String> = array_map( @@ -780,7 +780,7 @@ impl GitDownloader { let mut do_help = false; match answer.as_deref() { Some("y") => { - self.discard_changes(&path)?; + self.discard_changes(&path).await?; break 'outer; } Some("s") => { @@ -788,7 +788,7 @@ impl GitDownloader { // goto help; do_help = true; } else { - self.stash_changes(&path)?; + self.stash_changes(&path).await?; break 'outer; } } @@ -847,7 +847,7 @@ impl GitDownloader { } } - Ok(promise::resolve(None)) + Ok(None) } pub(crate) fn reapply_changes(&mut self, path: &str) -> Result<()> { @@ -1254,7 +1254,7 @@ impl GitDownloader { self.has_discarded_changes.insert(path, true); - Ok(promise::resolve(None)) + Ok(None) } /// @phpstan-return PromiseInterface<void|null> @@ -1281,7 +1281,7 @@ impl GitDownloader { self.has_stashed_changes.insert(path, true); - Ok(promise::resolve(None)) + Ok(None) } /// @throws \RuntimeException |
