== lazyBooleans == fun lazyBooleans(a : Boolean, b : Boolean) : Unit { if (a) { 1 } else { 2 } 3 if (a && b) 5 else 6 7 if (a || b) 8 else 9 10 if (a) 11 12 if (a) else 13 14 } --------------------- l0: NEXT:[v(a : Boolean)] PREV:[] v(a : Boolean) NEXT:[w(a)] PREV:[] w(a) NEXT:[v(b : Boolean)] PREV:[v(a : Boolean)] v(b : Boolean) NEXT:[w(b)] PREV:[w(a)] w(b) NEXT:[r(a)] PREV:[v(b : Boolean)] r(a) NEXT:[jf(l2)] PREV:[w(b)] jf(l2) NEXT:[r(2), r(1)] PREV:[r(a)] r(1) NEXT:[jmp(l3)] PREV:[jf(l2)] jmp(l3) NEXT:[r(3)] PREV:[r(1)] l2: r(2) NEXT:[r(3)] PREV:[jf(l2)] l3: r(3) NEXT:[r(a)] PREV:[jmp(l3), r(2)] r(a) NEXT:[jf(l4)] PREV:[r(3)] jf(l4) NEXT:[jf(l5), r(b)] PREV:[r(a)] r(b) NEXT:[jf(l5)] PREV:[jf(l4)] l4: jf(l5) NEXT:[r(6), r(5)] PREV:[jf(l4), r(b)] r(5) NEXT:[jmp(l6)] PREV:[jf(l5)] jmp(l6) NEXT:[r(7)] PREV:[r(5)] l5: r(6) NEXT:[r(7)] PREV:[jf(l5)] l6: r(7) NEXT:[r(a)] PREV:[jmp(l6), r(6)] r(a) NEXT:[jt(l7)] PREV:[r(7)] jt(l7) NEXT:[r(b), jf(l8)] PREV:[r(a)] r(b) NEXT:[jf(l8)] PREV:[jt(l7)] l7: jf(l8) NEXT:[r(9), r(8)] PREV:[jt(l7), r(b)] r(8) NEXT:[jmp(l9)] PREV:[jf(l8)] jmp(l9) NEXT:[r(10)] PREV:[r(8)] l8: r(9) NEXT:[r(10)] PREV:[jf(l8)] l9: r(10) NEXT:[r(a)] PREV:[jmp(l9), r(9)] r(a) NEXT:[jf(l10)] PREV:[r(10)] jf(l10) NEXT:[read (Unit), r(11)] PREV:[r(a)] r(11) NEXT:[jmp(l11)] PREV:[jf(l10)] jmp(l11) NEXT:[r(12)] PREV:[r(11)] l10: read (Unit) NEXT:[r(12)] PREV:[jf(l10)] l11: r(12) NEXT:[r(a)] PREV:[jmp(l11), read (Unit)] r(a) NEXT:[jf(l12)] PREV:[r(12)] jf(l12) NEXT:[r(13), read (Unit)] PREV:[r(a)] read (Unit) NEXT:[jmp(l13)] PREV:[jf(l12)] jmp(l13) NEXT:[r(14)] PREV:[read (Unit)] l12: r(13) NEXT:[r(14)] PREV:[jf(l12)] l13: r(14) NEXT:[] PREV:[jmp(l13), r(13)] l1: NEXT:[] PREV:[r(14)] error: NEXT:[] PREV:[] sink: NEXT:[] PREV:[, ] =====================