diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-22 23:42:25 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-22 23:42:25 +0900 |
| commit | aa4e9ff27b974343beeccdd14e07e13f0e261599 (patch) | |
| tree | 2bfbb272440b898c1c505b461651be6cc3e1cda3 /crates/shirabe/src/package/loader/invalid_package_exception.rs | |
| parent | 5ab5f3b316798c1411ce8e6a7f5b091fda93589c (diff) | |
| download | php-shirabe-aa4e9ff27b974343beeccdd14e07e13f0e261599.tar.gz php-shirabe-aa4e9ff27b974343beeccdd14e07e13f0e261599.tar.zst php-shirabe-aa4e9ff27b974343beeccdd14e07e13f0e261599.zip | |
feat(solver): surface SolverProblemsException via two-layer Result
solve() previously dropped the SolverProblemsException and returned a
placeholder anyhow error, because its Rc<RefCell<Rule>> payload is not
Send+Sync and cannot ride anyhow::Error. Return
anyhow::Result<Result<LockTransaction, SolverProblemsException>> instead,
keeping fatal errors on the outer Result and the recoverable exception on
the inner one.
This lets the three Installer callsites port their PHP catch handlers
faithfully (pretty-string output, GithubActionError emit, getCode-based
exit codes) and lets solver_test.rs assert getProblems/getCode/
getPrettyString. The four ported assertion tests stay ignored: their
pretty-string path still reaches unimplemented todo!()s downstream.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/package/loader/invalid_package_exception.rs')
0 files changed, 0 insertions, 0 deletions
