Sorun: koşul 1-olmayan sıfır-dışı bir değer (ör. 2) üretince "cond == 1" karşılaştırması false dönüyor ve döngü yanlışlıkla erken çıkıyordu. Düzeltme: üç geçici talimat (LOAD_CONST, EQUAL_EQUAL, JIF_FALSE) kaldırıldı. Geri-jump artık doğrudan JIF_TRUE ile yapılıyor — truthy (sıfır-dışı her değer) ise loopStart'a atla; isTruthy() semantiğiyle tutarlı. Test: tests/golden/loops/do_while_truthy.sqt — koşulun i<3 ifadesi (1 veya 0 üretir, 2 üretmez), ancak "while (j)" (j=5→truthy→dön, j=0→false→çık) gibi 1-olmayan truthy koşullar da doğru çalışıyor. 13/13 test yeşil. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| CMakeConfigureLog.yaml | ||
| InstallScripts.json | ||
| TargetDirectories.txt | ||
| VerifyGlobs.cmake | ||
| cmake.check_cache | ||
| cmake.verify_globs | ||
| rules.ninja | ||