diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-03 21:05:15 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-03 21:05:15 +0900 |
| commit | 27764ef4447a02e5c59bbcc7b4547838aae82d89 (patch) | |
| tree | ade2b2c9ba2d4cc0a0b3ed66aa9b4e04754a9b7a /crates/shirabe/src/repository/vcs | |
| parent | eacd2abcc53659a9fa20b1274a30ac4d9ad8bdb6 (diff) | |
| download | php-shirabe-27764ef4447a02e5c59bbcc7b4547838aae82d89.tar.gz php-shirabe-27764ef4447a02e5c59bbcc7b4547838aae82d89.tar.zst php-shirabe-27764ef4447a02e5c59bbcc7b4547838aae82d89.zip | |
refactor(downloader,repository,json): drop stale try/catch TODOs; fix svn getFileContent catch type
Remove 17 TODO(phase-b) markers across exception-modeling sites where the
existing single-Result closure+match already faithfully models the PHP
try/catch (catch paths only rethrow, retry, log, or silently ignore and
never yield a recoverable value, so a double Result is unnecessary).
Fix SvnDriver::get_file_content to catch only RuntimeException (matching
PHP's catch RuntimeException) and extract its .message instead of calling
e.to_string() on the anyhow::Error, which would panic while the shim
exception Display is unimplemented; other errors now propagate.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/repository/vcs')
| -rw-r--r-- | crates/shirabe/src/repository/vcs/svn_driver.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/crates/shirabe/src/repository/vcs/svn_driver.rs b/crates/shirabe/src/repository/vcs/svn_driver.rs index 2812c8d..23ea703 100644 --- a/crates/shirabe/src/repository/vcs/svn_driver.rs +++ b/crates/shirabe/src/repository/vcs/svn_driver.rs @@ -171,7 +171,6 @@ impl SvnDriver { } } - // TODO(phase-b): use anyhow::Result<Result<T, E>> to model PHP try/catch let base_result = self.get_file_content("composer.json", identifier) .and_then(|file_content| { @@ -259,14 +258,16 @@ impl SvnDriver { (identifier.clone(), String::new()) }; - // TODO(phase-b): use anyhow::Result<Result<T, E>> to model PHP try/catch let output: String = match self.execute( vec!["svn".to_string(), "cat".to_string()], &format!("{}{}{}", self.base_url, path, rev), ) { Ok(o) => o, Err(e) => { - return Err(TransportException::new(e.to_string(), 0).into()); + if let Some(e) = e.downcast_ref::<RuntimeException>() { + return Err(TransportException::new(e.message.clone(), 0).into()); + } + return Err(e); } }; if trim(&output, None) == "" { @@ -557,7 +558,6 @@ impl SvnDriver { .set_cache_credentials(self.cache_credentials); } - // TODO(phase-b): use anyhow::Result<Result<T, E>> to model PHP try/catch match self .util .as_mut() |
