aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/json/json_validation_exception_test.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-22 23:42:25 +0900
committernsfisis <nsfisis@gmail.com>2026-06-22 23:42:25 +0900
commitaa4e9ff27b974343beeccdd14e07e13f0e261599 (patch)
tree2bfbb272440b898c1c505b461651be6cc3e1cda3 /crates/shirabe/tests/json/json_validation_exception_test.rs
parent5ab5f3b316798c1411ce8e6a7f5b091fda93589c (diff)
downloadphp-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/tests/json/json_validation_exception_test.rs')
0 files changed, 0 insertions, 0 deletions