aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands/remove.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-24 00:47:35 +0900
committernsfisis <nsfisis@gmail.com>2026-02-24 00:47:35 +0900
commitd9858fbd322ce20de84f44ce67ae11edf081578c (patch)
tree10d397b94008882ce6e9dddf8905987af626e0ab /crates/mozart/src/commands/remove.rs
parentaf0df92e1ecc82823a510646b7545278caeac4b8 (diff)
downloadphp-mozart-d9858fbd322ce20de84f44ce67ae11edf081578c.tar.gz
php-mozart-d9858fbd322ce20de84f44ce67ae11edf081578c.tar.zst
php-mozart-d9858fbd322ce20de84f44ce67ae11edf081578c.zip
fix(solver): iterate live watch chain to prevent infinite loop in propagation
The watch graph's propagateLiteral used a cloned chain for iteration while checking the live chain for bounds. After move_watch removed a node, the stale clone kept re-reading the same node index, causing an infinite loop on large dependency sets (e.g. laravel/laravel). Now re-fetch the live chain each iteration, matching Composer's SplDoublyLinkedList semantics where remove() advances the iterator. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'crates/mozart/src/commands/remove.rs')
0 files changed, 0 insertions, 0 deletions