saqut-compiler/tests/golden/loops
saqut 8509d09ca8 fix(ir): do-while == 1 geçici çözümü kaldırıldı, JIF_TRUE kullanılıyor (B4)
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>
2026-06-19 15:59:15 +03:00
..
basic.expected test: golden testler — operatör önceliği, döngüler, folding, DCE 2026-06-18 22:33:19 +03:00
basic.sqt test: golden testler — operatör önceliği, döngüler, folding, DCE 2026-06-18 22:33:19 +03:00
do_while_once.expected test: golden testler — operatör önceliği, döngüler, folding, DCE 2026-06-18 22:33:19 +03:00
do_while_once.sqt test: golden testler — operatör önceliği, döngüler, folding, DCE 2026-06-18 22:33:19 +03:00
do_while_truthy.expected fix(ir): do-while == 1 geçici çözümü kaldırıldı, JIF_TRUE kullanılıyor (B4) 2026-06-19 15:59:15 +03:00
do_while_truthy.sqt fix(ir): do-while == 1 geçici çözümü kaldırıldı, JIF_TRUE kullanılıyor (B4) 2026-06-19 15:59:15 +03:00