@@ -3,12 +3,13 @@ let .lookup(tctx: TypeContext?, key: CString): TypeContextRow = tctx.get-or(mk-t
33let .lookup(trs: List<TypeContextRow>, key: CString): TypeContextRow = (
44 let default = NullTypeContextRow;
55 let continue = true;
6- for list tr in trs { if continue {
6+ while non-zero(trs) and continue {
7+ let tr = head(trs); trs = tail(trs);
78 if tr.key-or-zero == key {
89 default = tr;
910 continue = false;
1011 }
11- }} ;
12+ };
1213 if not(non-zero(default)) {
1314 for vector tr in global-tctx.lookup(key, mk-vector(type(TypeContextRow)) ) {
1415 if tr.key-or-zero == key {
@@ -29,12 +30,13 @@ let .lookups(tctx: TypeContext?, key: CString): Vector<TypeContextRow> = tctx.ge
2930let .lookups(trs: List<TypeContextRow>, key: CString): Vector<TypeContextRow> = (
3031 let default = mk-vector(type(TypeContextRow));
3132 let continue = true;
32- for list tr in trs { if continue {
33+ while non-zero(trs) and continue {
34+ let tr = head(trs); trs = tail(trs);
3335 if tr.key-or-zero == key {
3436 default = default.push(tr);
3537 continue = false;
3638 }
37- }} ;
39+ };
3840 if continue {
3941 for vector tr in global-tctx.lookup(key, mk-vector(type(TypeContextRow)) ) {
4042 if tr.key-or-zero == key {
@@ -49,11 +51,12 @@ let .lookup-phi(tctx: TypeContext?, key: CString): PhiContextRow = tctx.get-or(m
4951let .lookup(trs: List<PhiContextRow>, key: CString): PhiContextRow = (
5052 let default = NullPhiContextRow;
5153 let continue = true;
52- for list tr in trs { if continue {
54+ while non-zero(trs) and continue {
55+ let tr = head(trs); trs = tail(trs);
5356 if tr.phi-id-or-zero == key {
5457 default = tr;
5558 if not(tr.dead-on-arrival-or-zero) then continue = false;
5659 }
57- }} ;
60+ };
5861 default
5962);
0 commit comments