diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-10 00:54:22 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-10 00:54:58 +0900 |
| commit | e583112899cbea7494ffdd73d7de380dd5f808c4 (patch) | |
| tree | 1ec002a4d9ab5af5f81ff3bc0ae0ea6a92e44c10 /crates/shirabe/src/dependency_resolver | |
| parent | 436e12381dd79e419dce755718be17b66d73e17f (diff) | |
| download | php-shirabe-e583112899cbea7494ffdd73d7de380dd5f808c4.tar.gz php-shirabe-e583112899cbea7494ffdd73d7de380dd5f808c4.tar.zst php-shirabe-e583112899cbea7494ffdd73d7de380dd5f808c4.zip | |
feat(phase-c): resolve exception-handling phase-b TODOs
* Catch specific exception types instead of broad/placeholder handling.
* Drop the shim Countable trait.
Diffstat (limited to 'crates/shirabe/src/dependency_resolver')
| -rw-r--r-- | crates/shirabe/src/dependency_resolver/pool.rs | 9 | ||||
| -rw-r--r-- | crates/shirabe/src/dependency_resolver/solver.rs | 6 |
2 files changed, 4 insertions, 11 deletions
diff --git a/crates/shirabe/src/dependency_resolver/pool.rs b/crates/shirabe/src/dependency_resolver/pool.rs index 06878e1..b12d760 100644 --- a/crates/shirabe/src/dependency_resolver/pool.rs +++ b/crates/shirabe/src/dependency_resolver/pool.rs @@ -3,7 +3,7 @@ use std::fmt; use indexmap::IndexMap; -use shirabe_php_shim::{Countable, STR_PAD_LEFT, abs, str_pad}; +use shirabe_php_shim::{STR_PAD_LEFT, abs, str_pad}; use shirabe_semver::compiling_matcher::CompilingMatcher; use shirabe_semver::constraint::AnyConstraint; use shirabe_semver::constraint::SimpleConstraint; @@ -381,13 +381,6 @@ impl Pool { } } -impl Countable for Pool { - /// Returns how many packages have been loaded into the pool - fn count(&self) -> i64 { - self.packages.len() as i64 - } -} - impl fmt::Display for Pool { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { let mut str = String::from("Pool:\n"); diff --git a/crates/shirabe/src/dependency_resolver/solver.rs b/crates/shirabe/src/dependency_resolver/solver.rs index 28e1e7f..3d2113e 100644 --- a/crates/shirabe/src/dependency_resolver/solver.rs +++ b/crates/shirabe/src/dependency_resolver/solver.rs @@ -274,10 +274,10 @@ impl Solver { ); if self.problems.len() > 0 { - // TODO(phase-b): SolverProblemsException stores `Rc<RefCell<Rule>>` which is not + // TODO(phase-c): SolverProblemsException stores `Rc<RefCell<Rule>>` which is not // `Send + Sync`, so it cannot satisfy `anyhow::Error`'s bounds. Returning a - // placeholder error preserves control flow until the `Send + Sync` requirement - // is removed (single-threaded `Rc` model) or the exception type is reworked. + // placeholder error preserves control flow until the solver error path is reworked to + // a dedicated (non-anyhow) error type or the exception drops its dyn Rule payload. let _ = SolverProblemsException::new( std::mem::take(&mut self.problems), std::mem::take(&mut self.learned_pool), |
