aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/dependency_resolver/solver_problems_exception.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-20 08:33:49 +0900
committernsfisis <nsfisis@gmail.com>2026-05-20 08:33:57 +0900
commitf31b101ce1e921a026ba234b1f0a83b0392bc118 (patch)
treeb7ac2aa84d71ebd162cc21aeab0240e7e0544988 /crates/shirabe/src/dependency_resolver/solver_problems_exception.rs
parent5e31fa33c3b5cf726a57a063b8e7a070869250fe (diff)
downloadphp-shirabe-f31b101ce1e921a026ba234b1f0a83b0392bc118.tar.gz
php-shirabe-f31b101ce1e921a026ba234b1f0a83b0392bc118.tar.zst
php-shirabe-f31b101ce1e921a026ba234b1f0a83b0392bc118.zip
fix(compile): fix all remaining compile errors
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/dependency_resolver/solver_problems_exception.rs')
-rw-r--r--crates/shirabe/src/dependency_resolver/solver_problems_exception.rs28
1 files changed, 18 insertions, 10 deletions
diff --git a/crates/shirabe/src/dependency_resolver/solver_problems_exception.rs b/crates/shirabe/src/dependency_resolver/solver_problems_exception.rs
index c306bd0..f05dd87 100644
--- a/crates/shirabe/src/dependency_resolver/solver_problems_exception.rs
+++ b/crates/shirabe/src/dependency_resolver/solver_problems_exception.rs
@@ -46,7 +46,7 @@ impl SolverProblemsException {
&self,
repository_set: &RepositorySet,
request: &Request,
- pool: &Pool,
+ pool: &mut Pool,
is_verbose: bool,
is_dev_extraction: bool,
) -> String {
@@ -58,16 +58,24 @@ impl SolverProblemsException {
for problem in &self.problems {
problems.push(format!(
"{}\n",
- problem.get_pretty_string(
- repository_set,
- request,
- pool,
- is_verbose,
- &installed_map,
- &self.learned_pool
- )
+ problem
+ .get_pretty_string(
+ repository_set,
+ request,
+ pool,
+ is_verbose,
+ &installed_map,
+ &self.learned_pool
+ )
+ .unwrap_or_default()
));
- missing_extensions.extend(self.get_extension_problems(problem.get_reasons()));
+ // TODO(phase-b): get_reasons returns an IndexMap; flatten its values into Vec<Vec<...>>.
+ let reasons_vec: Vec<Vec<Box<dyn crate::dependency_resolver::rule::Rule>>> = problem
+ .get_reasons()
+ .values()
+ .map(|v| v.iter().map(|r| r.clone_box()).collect())
+ .collect();
+ missing_extensions.extend(self.get_extension_problems(reasons_vec));
is_caused_by_lock =
is_caused_by_lock || problem.is_caused_by_lock(repository_set, request, pool);
}