1 /* Generated by Nim Compiler v1.6.2 */
2 #define NIM_INTBITS 32
3 
4 #include "nimbase.h"
5 #include <string.h>
6 #undef LANGUAGE_C
7 #undef MIPSEB
8 #undef MIPSEL
9 #undef PPC
10 #undef R3000
11 #undef R4000
12 #undef i386
13 #undef linux
14 #undef mips
15 #undef near
16 #undef far
17 #undef powerpc
18 #undef unix
19 #define nimfr_(x, y)
20 #define nimln_(x, y)
21 typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
22 typedef struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
23 typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
24 typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
25 typedef struct tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A;
26 typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
27 typedef struct tySequence__qwqHTkRvwhrRyENtudHQ7g tySequence__qwqHTkRvwhrRyENtudHQ7g;
28 typedef struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ tySequence__4mZLwkxT8rbt9bf3wXrXYNQ;
29 typedef struct tySequence__rQHmYk1HzcwNxKBymIFHpA tySequence__rQHmYk1HzcwNxKBymIFHpA;
30 typedef struct tySequence__XMM60DtBsc6xYsIpNANkrA tySequence__XMM60DtBsc6xYsIpNANkrA;
31 typedef struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw;
32 typedef struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg;
33 typedef struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg;
34 typedef struct tySequence__mWRMiYLthG9coLjkbElCxkw tySequence__mWRMiYLthG9coLjkbElCxkw;
35 typedef struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyObject_Table__iowAVDkco3qpbEH0z8OmkQ;
36 typedef struct tySequence__bTDCDwD2P7TodzbAefLcSw tySequence__bTDCDwD2P7TodzbAefLcSw;
37 typedef struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w;
38 typedef struct tySequence__3MPVXAHA08SszBrU4ffqEg tySequence__3MPVXAHA08SszBrU4ffqEg;
39 typedef struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw tyObject_Table__KcymdZjUsmGSK8BxmvoJgw;
40 typedef struct tySequence__YCf5zJHm4JI06qpmKwPUWg tySequence__YCf5zJHm4JI06qpmKwPUWg;
41 typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
42 typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
43 typedef struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ;
44 typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
45 typedef struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ tySequence__eHqUwlHGGaPw0TDPDeL79cQ;
46 typedef struct tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA;
47 typedef struct tySequence__61s9cbAniKuBrdHwBhMDfQg tySequence__61s9cbAniKuBrdHwBhMDfQg;
48 typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
49 typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
50 typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
51 typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
52 typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
53 typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
54 typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
55 typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
56 typedef struct RootObj RootObj;
57 typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
58 typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
59 typedef struct tySequence__s9byh6WFJ16lPMcmqdaMTHA tySequence__s9byh6WFJ16lPMcmqdaMTHA;
60 typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
61 typedef struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw tyObject_Table__Ue6w4c82v7gc7t2qntTbAw;
62 typedef struct tySequence__1U9bG8RcAedEeYkQLZjVFKA tySequence__1U9bG8RcAedEeYkQLZjVFKA;
63 typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
64 typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
65 typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
66 typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
67 typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
68 typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
69 typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
70 typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
71 typedef struct tySequence__MAQKEADohlpnXTModtugbQ tySequence__MAQKEADohlpnXTModtugbQ;
72 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
73 typedef struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA;
74 typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
75 typedef struct TNimType TNimType;
76 typedef struct TNimNode TNimNode;
77 typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
78 typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
79 typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
80 typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
81 typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
82 typedef struct NimStringDesc NimStringDesc;
83 typedef struct TGenericSeq TGenericSeq;
84 typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
85 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
86 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
87 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
88 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
89 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
90 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
91 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
92 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
93 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
94 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
95 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
96 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
97 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
98 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
99 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
100 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
101 typedef struct tyObject_PreprocessContext__ATjkivkWYrBstrMNxiy9cNw tyObject_PreprocessContext__ATjkivkWYrBstrMNxiy9cNw;
102 typedef struct tySequence__1I3cxybVrOXM64KW2dfERQ tySequence__1I3cxybVrOXM64KW2dfERQ;
103 typedef struct tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw;
104 typedef struct tyObject_FreshVarsContext__BITJ25TBEN8CE4NK59coN0w tyObject_FreshVarsContext__BITJ25TBEN8CE4NK59coN0w;
105 typedef struct tyObject_Table__5WMmzblM3wEpYUTgMBzetQ tyObject_Table__5WMmzblM3wEpYUTgMBzetQ;
106 typedef struct tySequence__gVogYzwlGNrCaz6jQnXRzA tySequence__gVogYzwlGNrCaz6jQnXRzA;
107 typedef struct tyTuple__O3AtiO8fwKWfdl6NGmuzhw tyTuple__O3AtiO8fwKWfdl6NGmuzhw;
108 typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
109 typedef struct tyTuple__EFqgCXJ4d8PgqOdFJmldsQ tyTuple__EFqgCXJ4d8PgqOdFJmldsQ;
110 typedef struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA;
111 typedef struct tySequence__vv5mGmK03BCr5e3LTZA5Hw tySequence__vv5mGmK03BCr5e3LTZA5Hw;
112 typedef struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w;
113 typedef struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ;
114 typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
115 typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
116 typedef struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw;
117 typedef struct tySequence__29bS0n2QNyO1R7e0qMMOvLA tySequence__29bS0n2QNyO1R7e0qMMOvLA;
118 typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
119 typedef struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg tySequence__REuPuHuSlOkZ0Q5oqzDrQg;
120 typedef struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA tySequence__I9aQmO9asXXWJ58UI9c8BCSzA;
121 typedef struct tySequence__NyaOkf8ZwxP6rkRF5TOkew tySequence__NyaOkf8ZwxP6rkRF5TOkew;
122 typedef struct tySequence__L9bOt8CaTEmIjgtuZvp6syg tySequence__L9bOt8CaTEmIjgtuZvp6syg;
123 typedef struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ tySequence__im8UB2GsZvUaQ4a1wKGWhQ;
124 typedef struct tySequence__xxnXDLpoqBo8zJzP9b1073g tySequence__xxnXDLpoqBo8zJzP9b1073g;
125 typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
126 typedef struct tySequence__DfmUmNgVGnYaiV1I6227tw tySequence__DfmUmNgVGnYaiV1I6227tw;
127 typedef struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA tySequence__t8Uv4lEJ4lkuECvP9c6JMhA;
128 typedef struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg;
129 typedef struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ;
130 typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
131 typedef struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g tyObject_Table__CE4eiu6FavV1vmUiTXQ70g;
132 typedef struct tySequence__9bT7o0CflHuiE4VhmtqBPCw tySequence__9bT7o0CflHuiE4VhmtqBPCw;
133 typedef struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw;
134 typedef struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q tyObject_Table__TRm6MPqklA8EYBmBMY117Q;
135 typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
136 typedef struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ;
137 typedef struct tySequence__O5RcspOP32YJ4YtU5ppxxA tySequence__O5RcspOP32YJ4YtU5ppxxA;
138 typedef struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg;
139 typedef struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ;
140 typedef struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ;
141 typedef struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg tyTuple__o67sDX0wYbEuhI9cJYAbDtg;
142 typedef struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA;
143 typedef struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg;
144 typedef struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA tySequence__ipEvhpHAmm8ZCn9bZAOdNYA;
145 typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
146 typedef struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q tyTuple__9aNnDWBFMF44sfFinBpMT4Q;
147 typedef struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg;
148 typedef struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g tySequence__159bHWBGAOOs6U7OZ9cQlO0g;
149 typedef struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ tyTuple__VrD6plbUKJjYKM0lCr3hGQ;
150 typedef struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA;
151 typedef struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA tyTuple__1ZbjBgxAbnye0IFMZ6w4OA;
152 typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
153 typedef struct tyTuple__rplX06U9bjhu9asm5pWdgqsA tyTuple__rplX06U9bjhu9asm5pWdgqsA;
154 typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
155 typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
156 typedef struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A;
157 typedef struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ tyTuple__3i6hlQmqrn6m7tuVN8FHjQ;
158 typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
159 typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
160 typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
161 typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
162 typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
163 typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
164 typedef struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ;
165 typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
166 typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
167 typedef struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow;
168 typedef struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg;
169 typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
170 typedef struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA tyTuple__Q7r9caOmeWqQGZCIBHhGRUA;
171 typedef struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg;
172 typedef struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw tyTuple__XyJ8LOAZzVVXSsmt09b8uWw;
173 typedef struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA;
174 typedef struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw tySequence__vC9cvg0R8tfBaOXXi3sfMzw;
175 typedef struct tyTuple__9aoobCDZB4x41HJSOmh0mwA tyTuple__9aoobCDZB4x41HJSOmh0mwA;
176 typedef struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA tyTuple__g0Q6Qx15nK53ce9aLo7YyrA;
177 typedef struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw;
178 typedef struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw;
179 typedef struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA;
180 typedef struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ;
181 typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
182 struct tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A {
183 tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g;
184 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn;
185 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* stateVarSym;
186 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* tmpResultSym;
187 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* unrollFinallySym;
188 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* curExcSym;
189 tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* states;
190 NI blockLevel;
191 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* stateLoopLabel;
192 NI exitStateIdx;
193 NI tempVarId;
194 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tempVars;
195 tySequence__qwqHTkRvwhrRyENtudHQ7g* exceptionTable;
196 NIM_BOOL hasExceptions;
197 NI curExcHandlingState;
198 NI nearestFinally;
199 tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
200 };
201 struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw {
202 tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg* data;
203 NI counter;
204 };
205 struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg {
206 tySequence__mWRMiYLthG9coLjkbElCxkw* data;
207 NI counter;
208 };
209 struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ {
210 tySequence__bTDCDwD2P7TodzbAefLcSw* data;
211 NI counter;
212 };
213 typedef tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ[5];
214 struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w {
215 tySequence__3MPVXAHA08SszBrU4ffqEg* data;
216 NI counter;
217 };
218 struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw {
219 tySequence__YCf5zJHm4JI06qpmKwPUWg* data;
220 NI counter;
221 };
222 struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
223 tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
224 NI counter;
225 };
226 typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
227 typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
228 typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
229 typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
230 typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
231 struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ {
232 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
233 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
234 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
235 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
236 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
237 };
238 struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
239 NI counter;
240 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* data;
241 };
242 struct tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA {
243 tySequence__61s9cbAniKuBrdHwBhMDfQg* data;
244 NI counter;
245 };
246 typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
247 struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
248 NI elems;
249 NI counter;
250 NI max;
251 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
252 tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
253 tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
254 };
255 struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
256 tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
257 NI counter;
258 };
259 struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
260 tySequence__kxu4GK0onha2t9bo86mdVAg* data;
261 NI counter;
262 };
263 typedef struct {
264 N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
265 void* ClE_0;
266 } tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
267 typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__9bjuenwQUcqO3lbmS2wX7uA[65];
268 struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw {
269 tySequence__1U9bG8RcAedEeYkQLZjVFKA* data;
270 NI counter;
271 };
272 struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
273 tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
274 NI counter;
275 };
276 typedef N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, tyProc__VHDwJFdIqpwtpUGuxiXUwg) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
277 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__mjUN9alLJ31lnSKkUsuyWMw) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
278 struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
279 tySequence__23SMqauuRsbDANhthj9bWlA* data;
280 NI counter;
281 };
282 struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
283 tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
284 NI counter;
285 };
286 struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
287 tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
288 NI counter;
289 };
290 typedef N_NIMCALL_PTR(void, tyProc__TjycsqkDBjsxd4da6KYTng) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
291 typedef N_NIMCALL_PTR(void, tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body);
292 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__J7Jq15ZScfKLqcLx8sEz9cA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual);
293 struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA {
294 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opNot;
295 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opContains;
296 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLe;
297 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLt;
298 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAnd;
299 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opOr;
300 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opIsNil;
301 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opEq;
302 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAdd;
303 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opSub;
304 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opMul;
305 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opDiv;
306 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLen;
307 };
308 struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ {
309 tySequence__4mZLwkxT8rbt9bf3wXrXYNQ* ifaces;
310 tySequence__rQHmYk1HzcwNxKBymIFHpA* packed_0;
311 tySequence__XMM60DtBsc6xYsIpNANkrA* encoders;
312 tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw typeInstCache;
313 tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg procInstCache;
314 tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ attachedOps;
315 tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w methodsPerType;
316 tyObject_Table__KcymdZjUsmGSK8BxmvoJgw enumToStringProcs;
317 tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA emittedTypeInfo;
318 tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ startupPackedConfig;
319 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageSyms;
320 tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA modulesPerPackage;
321 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA deps;
322 tyObject_Table__fdKWDDO1P17zvuQPReVgRA importDeps;
323 NIM_BOOL suggestMode;
324 NIM_BOOL invalidTransitiveClosure;
325 tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ inclToMod;
326 tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
327 RootObj* backend;
328 tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
329 tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
330 RootObj* vm;
331 tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
332 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* usageSym;
333 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* owners;
334 tySequence__s9byh6WFJ16lPMcmqdaMTHA* methods;
335 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* systemModule;
336 tyArray__9bjuenwQUcqO3lbmS2wX7uA sysTypes;
337 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA compilerprocs;
338 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA exposed;
339 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageTypes;
340 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* emptyNode;
341 tyObject_Table__Ue6w4c82v7gc7t2qntTbAw canonTypes;
342 tyObject_Table__G1v8c16HePOldLeucwe05Q symBodyHashes;
343 tyProc__VHDwJFdIqpwtpUGuxiXUwg importModuleCallback;
344 tyProc__mjUN9alLJ31lnSKkUsuyWMw includeFileCallback;
345 tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
346 tyObject_Table__NttoEzoiq5CiphZe81oadg cacheCounters;
347 tyObject_Table__nagDFX4QHx0s6Fvma9blmSg cacheTables;
348 tySequence__MAQKEADohlpnXTModtugbQ* passes;
349 tyProc__TjycsqkDBjsxd4da6KYTng onDefinition;
350 tyProc__TjycsqkDBjsxd4da6KYTng onDefinitionResolveForward;
351 tyProc__TjycsqkDBjsxd4da6KYTng onUsage;
352 tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* globalDestructors;
353 tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ strongSemCheck;
354 tyProc__J7Jq15ZScfKLqcLx8sEz9cA compatibleProps;
355 tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
356 tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA operators;
357 };
358 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
359 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
360 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
361 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
362 struct TNimType {
363 NI size;
364 NI align;
365 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
366 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
367 TNimType* base;
368 TNimNode* node;
369 void* finalizer;
370 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
371 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
372 };
373 struct RootObj {
374 TNimType* m_type;
375 };
376 struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
377 NI32 module;
378 NI32 item;
379 };
380 struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
381   RootObj Sup;
382 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
383 };
384 typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
385 typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
386 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
387 NU16 line;
388 NI16 col;
389 NI32 fileIndex;
390 };
391 typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
392 typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
393 typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
394 typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
395 struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
396 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
397 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
398 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
399 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
400 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
401 };
402 struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
403   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
404 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
405 union{
406 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
407 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
408 } _kind_1;
409 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
410 NI bitsize;
411 NI alignment;
412 } _kind_2;
413 };
414 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
415 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
416 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
417 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
418 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
419 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
420 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
421 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
422 NI position;
423 NI offset;
424 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
425 tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
426 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
427 };
428 struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q {
429 NI32 module;
430 NI32 symId;
431 NI32 typeId_0;
432 NIM_BOOL sealed;
433 };
434 struct TGenericSeq {
435 NI len;
436 NI reserved;
437 };
438 struct NimStringDesc {
439   TGenericSeq Sup;
440 NIM_CHAR data[SEQ_DECL_SIZE];
441 };
442 typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
443 typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
444 typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
445 struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
446   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
447 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
448 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
449 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
450 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
451 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
452 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
453 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
454 NI64 size;
455 NI16 align;
456 NI16 paddingAtEnd;
457 NI16 lockLevel;
458 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
459 tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
460 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
461 };
462 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
463 NI refcount;
464 TNimType* typ;
465 };
466 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
467 void* bottom;
468 };
469 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
470 NI len;
471 NI cap;
472 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
473 };
474 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
475 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
476 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
477 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
478 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
479 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
480 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
481 };
482 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
483 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
484 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
485 NI key;
486 NI upperBound;
487 NI level;
488 };
489 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
490 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
491 NI Field1;
492 };
493 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
494 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
495 NI len;
496 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
497 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
498 };
499 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
500 NI minLargeObj;
501 NI maxLargeObj;
502 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
503 NU32 flBitmap;
504 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
505 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
506 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
507 NI currMem;
508 NI maxMem;
509 NI freeMem;
510 NI occ;
511 NI lastSize;
512 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
513 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
514 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
515 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
516 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
517 NIM_BOOL locked;
518 NIM_BOOL blockChunkSizeIncrease;
519 NI nextChunkSize;
520 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
521 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
522 };
523 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
524 NI stackScans;
525 NI cycleCollections;
526 NI maxThreshold;
527 NI maxStackSize;
528 NI maxStackCells;
529 NI cycleTableSize;
530 NI64 maxPause;
531 };
532 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
533 NI counter;
534 NI max;
535 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
536 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
537 };
538 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
539 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
540 NI cycleThreshold;
541 NI zctThreshold;
542 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
543 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
544 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
545 NI recGcLock;
546 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
547 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
548 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
549 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
550 NI gcThreadId;
551 };
552 struct tyObject_PreprocessContext__ATjkivkWYrBstrMNxiy9cNw {
553 tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* finallys;
554 tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
555 tySequence__1I3cxybVrOXM64KW2dfERQ* blocks;
556 tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
557 };
558 typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
559 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
560 struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
561 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
562 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
563 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
564 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
565 union{
566 struct {NI64 intVal;
567 } _kind_1;
568 struct {NF floatVal;
569 } _kind_2;
570 struct {NimStringDesc* strVal;
571 } _kind_3;
572 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
573 } _kind_4;
574 struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
575 } _kind_5;
576 struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
577 } _kind_6;
578 };
579 };
580 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
581 struct TNimNode {
582 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
583 NI offset;
584 TNimType* typ;
585 NCSTRING name;
586 NI len;
587 TNimNode** sons;
588 };
589 struct tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw {
590 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field0;
591 NI Field1;
592 };
593 struct tyObject_Table__5WMmzblM3wEpYUTgMBzetQ {
594 tySequence__gVogYzwlGNrCaz6jQnXRzA* data;
595 NI counter;
596 };
597 struct tyObject_FreshVarsContext__BITJ25TBEN8CE4NK59coN0w {
598 tyObject_Table__5WMmzblM3wEpYUTgMBzetQ tab;
599 tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
600 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
601 tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
602 };
603 struct tyTuple__O3AtiO8fwKWfdl6NGmuzhw {
604 NI Field0;
605 NI Field1;
606 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field2;
607 };
608 typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
609 typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
610 struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
611 NimStringDesc* Field0;
612 NI Field1;
613 NI Field2;
614 };
615 typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
616 struct tyTuple__EFqgCXJ4d8PgqOdFJmldsQ {
617 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field0;
618 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field1;
619 };
620 typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__AB6yfoUgfWM2NtGe9bzkCmw[2];
621 typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__T6RKPw8xfAeNaoei9aZGzXg[3];
622 typedef NU8 tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g;
623 struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA {
624 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
625 tySequence__vv5mGmK03BCr5e3LTZA5Hw* converters;
626 tySequence__vv5mGmK03BCr5e3LTZA5Hw* patterns;
627 tySequence__vv5mGmK03BCr5e3LTZA5Hw* pureEnums;
628 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interf;
629 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interfHidden;
630 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* uniqueName;
631 };
632 typedef NU8 tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q;
633 struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw {
634 tySequence__29bS0n2QNyO1R7e0qMMOvLA* nodes;
635 };
636 typedef NU8 tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g;
637 struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg {
638 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* vals;
639 tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
640 };
641 struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ {
642 tySequence__IHUFRsFxZNv7YydiUO2esQ* vals;
643 tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
644 };
645 struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ {
646 NimStringDesc* definedSymbols;
647 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw moduleFlags;
648 tySequence__PXIzfWocnrafGz5p3CP5LA* includes;
649 tySequence__9bAGqSvkAaFL9bWjsEPslrFA* imports;
650 tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw toReplay;
651 tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw topLevel;
652 tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw bodies;
653 tySequence__b89aLriiJnVTD186H6zNIgg* exports;
654 tySequence__b89aLriiJnVTD186H6zNIgg* hidden;
655 tySequence__REuPuHuSlOkZ0Q5oqzDrQg* reexports;
656 tySequence__b89aLriiJnVTD186H6zNIgg* compilerProcs;
657 tySequence__48JTohSgTy339bRxHzUD8KA* converters;
658 tySequence__48JTohSgTy339bRxHzUD8KA* methods;
659 tySequence__48JTohSgTy339bRxHzUD8KA* trmacros;
660 tySequence__48JTohSgTy339bRxHzUD8KA* pureEnums;
661 tySequence__I9aQmO9asXXWJ58UI9c8BCSzA* macroUsages;
662 tySequence__NyaOkf8ZwxP6rkRF5TOkew* typeInstCache;
663 tySequence__L9bOt8CaTEmIjgtuZvp6syg* procInstCache;
664 tySequence__im8UB2GsZvUaQ4a1wKGWhQ* attachedOps;
665 tySequence__xxnXDLpoqBo8zJzP9b1073g* methodsPerType;
666 tySequence__NyaOkf8ZwxP6rkRF5TOkew* enumToStringProcs;
667 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* emittedTypeInfo;
668 tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g backendFlags;
669 tySequence__DfmUmNgVGnYaiV1I6227tw* syms;
670 tySequence__t8Uv4lEJ4lkuECvP9c6JMhA* types;
671 tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg strings;
672 tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ numbers;
673 tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ cfg;
674 };
675 struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g {
676 tySequence__9bT7o0CflHuiE4VhmtqBPCw* data;
677 NI counter;
678 };
679 struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w {
680 tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q status;
681 NIM_BOOL symsInit;
682 NIM_BOOL typesInit;
683 NIM_BOOL loadedButAliveSetChanged;
684 tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ fromDisk;
685 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* syms;
686 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* types;
687 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
688 tyObject_Table__CE4eiu6FavV1vmUiTXQ70g iface;
689 tyObject_Table__CE4eiu6FavV1vmUiTXQ70g ifaceHidden;
690 };
691 struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q {
692 tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* data;
693 NI counter;
694 };
695 struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw {
696 NI32 thisModule;
697 NI32 lastFile;
698 NU32 lastLit;
699 tyObject_Table__TRm6MPqklA8EYBmBMY117Q filenames;
700 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* pendingTypes;
701 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* pendingSyms;
702 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA typeMarker;
703 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA symMarker;
704 tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
705 };
706 struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ {
707 NU32 module;
708 NI32 item;
709 };
710 struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ {
711 NI module;
712 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ packed_0;
713 };
714 struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg {
715 tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
716 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
717 };
718 struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ {
719 NI Field0;
720 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
721 tySequence__O5RcspOP32YJ4YtU5ppxxA* Field2;
722 };
723 struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg {
724 NI module;
725 tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ sym;
726 tySequence__ipEvhpHAmm8ZCn9bZAOdNYA* concreteTypes;
727 tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
728 };
729 struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg {
730 NI Field0;
731 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
732 tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA* Field2;
733 };
734 struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q {
735 NI Field0;
736 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
737 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field2;
738 };
739 struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA {
740 tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
741 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
742 };
743 struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ {
744 NI Field0;
745 tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field1;
746 };
747 struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg {
748 NI Field0;
749 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
750 tySequence__159bHWBGAOOs6U7OZ9cQlO0g* Field2;
751 };
752 struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA {
753 NI Field0;
754 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
755 tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field2;
756 };
757 struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
758 NI Field0;
759 NimStringDesc* Field1;
760 NI32 Field2;
761 };
762 struct tyTuple__rplX06U9bjhu9asm5pWdgqsA {
763 NI Field0;
764 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
765 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA Field2;
766 };
767 struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
768 NI Field0;
769 NI32 Field1;
770 tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
771 };
772 struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
773 NI Field0;
774 NI32 Field1;
775 NI32 Field2;
776 };
777 struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A {
778 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* Field0;
779 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
780 };
781 typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
782 struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ {
783 NI Field0;
784 tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
785 tyObject_TType__facALICuu8zUj0hjvbTLFg* Field2;
786 };
787 struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
788 NI Field0;
789 NI Field1;
790 tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
791 };
792 struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
793 NI Field0;
794 NimStringDesc* Field1;
795 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
796 };
797 struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
798 NI Field0;
799 NimStringDesc* Field1;
800 NI64 Field2;
801 };
802 struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
803 tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
804 NI entries;
805 };
806 struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
807 NI Field0;
808 NimStringDesc* Field1;
809 tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
810 };
811 typedef N_NIMCALL_PTR(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, tyProc__jkSFMhvPZ1AdGcvT2dK9a2w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
812 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__A7Sdoem70tRxSEmKrf9cmyg) (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* topLevelStmt);
813 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__EAEKmBUgKFg29agoUGtzDEQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
814 struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ {
815 tyProc__jkSFMhvPZ1AdGcvT2dK9a2w Field0;
816 tyProc__A7Sdoem70tRxSEmKrf9cmyg Field1;
817 tyProc__EAEKmBUgKFg29agoUGtzDEQ Field2;
818 NIM_BOOL Field3;
819 };
820 struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
821 NU32 Field0;
822 NimStringDesc* Field1;
823 };
824 struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg {
825 NU16 line;
826 NI16 col;
827 NU32 file;
828 };
829 struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow {
830 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
831 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
832 NI32 operand;
833 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeId_0;
834 tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
835 };
836 struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
837 NU32 Field0;
838 NI32 Field1;
839 };
840 struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA {
841 NU32 Field0;
842 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
843 };
844 struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg {
845 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
846 tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg Field1;
847 };
848 struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw {
849 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
850 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
851 };
852 struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA {
853 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ key;
854 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
855 tySequence__vC9cvg0R8tfBaOXXi3sfMzw* concreteTypes;
856 };
857 typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
858 struct tyTuple__9aoobCDZB4x41HJSOmh0mwA {
859 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg Field0;
860 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
861 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
862 };
863 struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA {
864 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
865 NI Field1;
866 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
867 };
868 typedef NU8 tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ;
869 struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw {
870 tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ kind;
871 NIM_BOOL generated;
872 NIM_BOOL isOverriden;
873 NU32 name;
874 NI32 path;
875 };
876 struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw {
877 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
878 NU32 name;
879 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typ;
880 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
881 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
882 tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
883 NI32 ast;
884 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
885 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ guard;
886 NI bitsize;
887 NI alignment;
888 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
889 NI position;
890 NI offset;
891 NU32 externalName;
892 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA locFlags;
893 tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw annex;
894 NI32 constraint;
895 };
896 struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA {
897 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
898 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
899 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
900 tySequence__vC9cvg0R8tfBaOXXi3sfMzw* types;
901 NI32 n;
902 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
903 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
904 NI64 size;
905 NI16 align;
906 NI16 paddingAtEnd;
907 NI16 lockLevel;
908 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeInst;
909 NI32 nonUniqueId;
910 };
911 struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ {
912 NI Field0;
913 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* Field1;
914 tySequence__vC9cvg0R8tfBaOXXi3sfMzw* Field2;
915 };
916 struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
917 NI Field0;
918 NI32 Field1;
919 NU32 Field2;
920 };
921 struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
922   TGenericSeq Sup;
923   tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
924 };
925 struct tySequence__1I3cxybVrOXM64KW2dfERQ {
926   TGenericSeq Sup;
927   tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw data[SEQ_DECL_SIZE];
928 };
929 struct tySequence__gVogYzwlGNrCaz6jQnXRzA {
930   TGenericSeq Sup;
931   tyTuple__O3AtiO8fwKWfdl6NGmuzhw data[SEQ_DECL_SIZE];
932 };
933 struct tySequence__qwqHTkRvwhrRyENtudHQ7g {
934   TGenericSeq Sup;
935   NI data[SEQ_DECL_SIZE];
936 };
937 struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ {
938   TGenericSeq Sup;
939   tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA data[SEQ_DECL_SIZE];
940 };
941 struct tySequence__rQHmYk1HzcwNxKBymIFHpA {
942   TGenericSeq Sup;
943   tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w data[SEQ_DECL_SIZE];
944 };
945 struct tySequence__XMM60DtBsc6xYsIpNANkrA {
946   TGenericSeq Sup;
947   tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw data[SEQ_DECL_SIZE];
948 };
949 struct tySequence__O5RcspOP32YJ4YtU5ppxxA {
950   TGenericSeq Sup;
951   tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg data[SEQ_DECL_SIZE];
952 };
953 struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg {
954   TGenericSeq Sup;
955   tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ data[SEQ_DECL_SIZE];
956 };
957 struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA {
958   TGenericSeq Sup;
959   tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg data[SEQ_DECL_SIZE];
960 };
961 struct tySequence__mWRMiYLthG9coLjkbElCxkw {
962   TGenericSeq Sup;
963   tyTuple__o67sDX0wYbEuhI9cJYAbDtg data[SEQ_DECL_SIZE];
964 };
965 struct tySequence__bTDCDwD2P7TodzbAefLcSw {
966   TGenericSeq Sup;
967   tyTuple__9aNnDWBFMF44sfFinBpMT4Q data[SEQ_DECL_SIZE];
968 };
969 struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g {
970   TGenericSeq Sup;
971   tyTuple__VrD6plbUKJjYKM0lCr3hGQ data[SEQ_DECL_SIZE];
972 };
973 struct tySequence__3MPVXAHA08SszBrU4ffqEg {
974   TGenericSeq Sup;
975   tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg data[SEQ_DECL_SIZE];
976 };
977 struct tySequence__YCf5zJHm4JI06qpmKwPUWg {
978   TGenericSeq Sup;
979   tyTuple__1ZbjBgxAbnye0IFMZ6w4OA data[SEQ_DECL_SIZE];
980 };
981 struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
982   TGenericSeq Sup;
983   tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
984 };
985 struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ {
986   TGenericSeq Sup;
987   tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* data[SEQ_DECL_SIZE];
988 };
989 struct tySequence__61s9cbAniKuBrdHwBhMDfQg {
990   TGenericSeq Sup;
991   tyTuple__rplX06U9bjhu9asm5pWdgqsA data[SEQ_DECL_SIZE];
992 };
993 struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
994   TGenericSeq Sup;
995   tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];
996 };
997 struct tySequence__48JTohSgTy339bRxHzUD8KA {
998   TGenericSeq Sup;
999   NI32 data[SEQ_DECL_SIZE];
1000 };
1001 struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
1002   TGenericSeq Sup;
1003   tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
1004 };
1005 struct tySequence__kxu4GK0onha2t9bo86mdVAg {
1006   TGenericSeq Sup;
1007   tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
1008 };
1009 struct tySequence__s9byh6WFJ16lPMcmqdaMTHA {
1010   TGenericSeq Sup;
1011   tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A data[SEQ_DECL_SIZE];
1012 };
1013 struct tySequence__1U9bG8RcAedEeYkQLZjVFKA {
1014   TGenericSeq Sup;
1015   tyTuple__3i6hlQmqrn6m7tuVN8FHjQ data[SEQ_DECL_SIZE];
1016 };
1017 struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
1018   TGenericSeq Sup;
1019   tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
1020 };
1021 struct tySequence__23SMqauuRsbDANhthj9bWlA {
1022   TGenericSeq Sup;
1023   tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
1024 };
1025 struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
1026   TGenericSeq Sup;
1027   tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
1028 };
1029 struct tySequence__pHNq3oXj9av2sEUdqaqeZjw {
1030   TGenericSeq Sup;
1031   tyTuple__wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
1032 };
1033 struct tySequence__MAQKEADohlpnXTModtugbQ {
1034   TGenericSeq Sup;
1035   tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ data[SEQ_DECL_SIZE];
1036 };
1037 struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
1038   TGenericSeq Sup;
1039   tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
1040 };
1041 struct tySequence__vv5mGmK03BCr5e3LTZA5Hw {
1042   TGenericSeq Sup;
1043   tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA data[SEQ_DECL_SIZE];
1044 };
1045 struct tySequence__PXIzfWocnrafGz5p3CP5LA {
1046   TGenericSeq Sup;
1047   tyTuple__0q9cmhneJEKnQERTpXXdz6Q data[SEQ_DECL_SIZE];
1048 };
1049 struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA {
1050   TGenericSeq Sup;
1051   NU32 data[SEQ_DECL_SIZE];
1052 };
1053 struct tySequence__29bS0n2QNyO1R7e0qMMOvLA {
1054   TGenericSeq Sup;
1055   tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow data[SEQ_DECL_SIZE];
1056 };
1057 struct tySequence__b89aLriiJnVTD186H6zNIgg {
1058   TGenericSeq Sup;
1059   tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE];
1060 };
1061 struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg {
1062   TGenericSeq Sup;
1063   tyTuple__Q7r9caOmeWqQGZCIBHhGRUA data[SEQ_DECL_SIZE];
1064 };
1065 struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA {
1066   TGenericSeq Sup;
1067   tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg data[SEQ_DECL_SIZE];
1068 };
1069 struct tySequence__NyaOkf8ZwxP6rkRF5TOkew {
1070   TGenericSeq Sup;
1071   tyTuple__XyJ8LOAZzVVXSsmt09b8uWw data[SEQ_DECL_SIZE];
1072 };
1073 struct tySequence__L9bOt8CaTEmIjgtuZvp6syg {
1074   TGenericSeq Sup;
1075   tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA data[SEQ_DECL_SIZE];
1076 };
1077 struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ {
1078   TGenericSeq Sup;
1079   tyTuple__9aoobCDZB4x41HJSOmh0mwA data[SEQ_DECL_SIZE];
1080 };
1081 struct tySequence__xxnXDLpoqBo8zJzP9b1073g {
1082   TGenericSeq Sup;
1083   tyTuple__g0Q6Qx15nK53ce9aLo7YyrA data[SEQ_DECL_SIZE];
1084 };
1085 struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
1086   TGenericSeq Sup;
1087   NimStringDesc* data[SEQ_DECL_SIZE];
1088 };
1089 struct tySequence__DfmUmNgVGnYaiV1I6227tw {
1090   TGenericSeq Sup;
1091   tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw data[SEQ_DECL_SIZE];
1092 };
1093 struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA {
1094   TGenericSeq Sup;
1095   tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA data[SEQ_DECL_SIZE];
1096 };
1097 struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
1098   TGenericSeq Sup;
1099   NI64 data[SEQ_DECL_SIZE];
1100 };
1101 struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw {
1102   TGenericSeq Sup;
1103   tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ data[SEQ_DECL_SIZE];
1104 };
1105 struct tySequence__9bT7o0CflHuiE4VhmtqBPCw {
1106   TGenericSeq Sup;
1107   tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ data[SEQ_DECL_SIZE];
1108 };
1109 struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ {
1110   TGenericSeq Sup;
1111   tyTuple__UvldbCB6B9ayi9bGYW7vJNLA data[SEQ_DECL_SIZE];
1112 };
1113 struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA {
1114   TGenericSeq Sup;
1115   tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ data[SEQ_DECL_SIZE];
1116 };
1117 static N_INLINE(void, nimZeroMem)(void* p, NI size);
1118 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
1119 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getEnvParam__lambdalifting_131)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* routine);
1120 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newSym__ast_3445)(tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw symKind, tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options);
1121 N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_143)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
1122 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3132)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
1123 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, createClosureIterStateType__lambdalifting_33)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* iter, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
1124 static N_INLINE(void, asgnRef)(void** dest, void* src);
1125 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
1126 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
1127 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr);
1128 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
1129 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
1130 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
1131 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
1132 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5264)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
1133 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, preprocess__closureiters_3362)(tyObject_PreprocessContext__ATjkivkWYrBstrMNxiy9cNw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1134 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__ast_4832)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1135 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, incrSeqV3)(TGenericSeq* s, TNimType* typ);
1136 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
1137 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1138 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pop__trees_32)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** s);
1139 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
1140 static N_INLINE(void, pop__closureiters_3415)(tySequence__1I3cxybVrOXM64KW2dfERQ** s, tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw* Result);
1141 static N_INLINE(tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw*, X5BX5D___closureiters_3437)(tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw* s, NI sLen_0, NI i);
1142 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3356)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1143 N_LIB_PRIVATE N_NIMCALL(void, initTable__closureiters_3484)(NI initialSize, tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* Result);
1144 static N_INLINE(NI, slotsNeeded__pureZcollectionsZtables_42)(NI count);
1145 N_LIB_PRIVATE N_NIMCALL(NI, nextPowerOfTwo__pureZmath_177)(NI x);
1146 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
1147 N_LIB_PRIVATE N_NIMCALL(void, nimGCvisit)(void* d, NI op);
1148 static N_NIMCALL(void, Marker_tySequence__gVogYzwlGNrCaz6jQnXRzA)(void* p, NI op);
1149 N_LIB_PRIVATE N_NIMCALL(void, add__ast_4797)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
1150 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, freshVars__closureiters_1804)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_FreshVarsContext__BITJ25TBEN8CE4NK59coN0w* c);
1151 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getOrDefault__closureiters_1903)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t, NI key);
1152 static N_INLINE(NI, rawGet__closureiters_1912)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t, NI key, NI* hc);
1153 static N_INLINE(NI, hash__pureZhashes_128)(NI x);
1154 static N_INLINE(NI, hashWangYi1__pureZhashes_136)(NU64 x);
1155 static N_INLINE(NU64, hiXorLo__pureZhashes_79)(NU64 a, NU64 b);
1156 static N_INLINE(NU64, hiXorLoFallback64__pureZhashes_35)(NU64 a, NU64 b);
1157 static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode);
1158 static N_INLINE(NI, nextTry__pureZcollectionsZtables_34)(NI h, NI maxHash);
1159 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3719)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1160 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyNode__ast_4336)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
1161 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1162 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, copySym__ast_4054)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id);
1163 N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___closureiters_2290)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* t, NI key, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* val);
1164 static N_INLINE(NIM_BOOL, mustRehash__closureiters_2463)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t);
1165 N_LIB_PRIVATE N_NIMCALL(void, enlarge__closureiters_2616)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* t);
1166 N_LIB_PRIVATE N_NIMCALL(void, rawInsert__closureiters_2916)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* t, tySequence__gVogYzwlGNrCaz6jQnXRzA** data, NI key, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* val, NI hc, NI h);
1167 static N_INLINE(NI, rawGetKnownHC__closureiters_3085)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t, NI key, NI hc);
1168 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3716)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
1169 N_LIB_PRIVATE N_NOINLINE(void, liMessage__msgs_1118)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w msg, NimStringDesc* arg, tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw eh, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2, NIM_BOOL isRaw);
1170 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, toStmtList__closureiters_136)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1171 N_LIB_PRIVATE N_NIMCALL(NI, newState__closureiters_97)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut);
1172 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntLit__lowerings_695)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI64 value);
1173 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTree__ast_3392)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
1174 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerStmtListExprs__closureiters_478)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL* needsSplit);
1175 N_LIB_PRIVATE N_NIMCALL(void, exprToStmtList__closureiters_385)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ* Result);
1176 static N_INLINE(void, nimGCunrefRC1)(void* p);
1177 N_LIB_PRIVATE N_NIMCALL(void, add__closureiters_406)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** y, NI yLen_0);
1178 N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_1431)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
1179 static N_INLINE(NIM_BOOL, isEmptyType__ast_4779)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1180 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newTempVar__closureiters_167)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
1181 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newEnvVar__closureiters_49)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, NimStringDesc* name, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
1182 N_LIB_PRIVATE N_NIMCALL(void, addVar__lowerings_63)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v);
1183 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, addUniqueField__lowerings_443)(tyObject_TType__facALICuu8zUj0hjvbTLFg* obj, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
1184 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, lastSon__ast_3743)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
1185 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
1186 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
1187 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
1188 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, dollar___systemZdollars_3)(NI x);
1189 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
1190 N_LIB_PRIVATE N_NIMCALL(void, addExprAssgn__closureiters_446)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* output, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* input, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
1191 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newEnvVarAsgn__closureiters_441)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v);
1192 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newEnvVarAccess__closureiters_70)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
1193 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, rawIndirectAccess__lowerings_326)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1194 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, reprEnum)(NI e, TNimType* typ);
1195 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, convertExprBodyToAsgn__closureiters_469)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exprBody, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* res);
1196 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNotCall__closureiters_474)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e);
1197 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getSysMagic__magicsys_29)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
1198 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getSysType__magicsys_60)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
1199 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getSysSym__magicsys_16)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* name);
1200 N_LIB_PRIVATE N_NIMCALL(void, transitionSonsKind__ast_4359)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g kind);
1201 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasYieldsInExpressions__closureiters_371)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1202 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasYields__closureiters_175)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1203 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformClosureIteratorBody__closureiters_1173)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut);
1204 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, addGotoOut__closureiters_147)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut);
1205 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformBreaksAndContinuesInWhile__closureiters_179)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* before, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* after);
1206 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformBreaksInBlock__closureiters_205)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* label, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* after);
1207 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, collectExceptState__closureiters_256)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1208 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, callCodegenProc__lowerings_635)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg1, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg2, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* arg3, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* optionalArgs);
1209 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newOr__closureiters_251)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b);
1210 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNullifyCurExc__closureiters_245)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1211 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newCurExcAccess__closureiters_91)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx);
1212 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNode__ast_3332)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind);
1213 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getFinallyNode__closureiters_357)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1214 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformReturnsInTry__closureiters_1107)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1215 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newUnrollFinallyAccess__closureiters_84)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1216 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntTypeNode__ast_3783)(NI64 intVal, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
1217 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTmpResultAccess__closureiters_77)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx);
1218 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newEndFinallyNode__closureiters_1092)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1219 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getClosureIterResult__lambdalifting_62)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* iter, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
1220 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getCompilerProc__magicsys_145)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NimStringDesc* name);
1221 N_LIB_PRIVATE N_NIMCALL(void, addElseToExcept__closureiters_316)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1222 N_LIB_PRIVATE N_NIMCALL(void, deleteEmptyStates__closureiters_1659)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx);
1223 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipStmtList__closureiters_1491)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1224 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipThroughEmptyStates__closureiters_1529)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1225 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__ast_4431)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
1226 N_LIB_PRIVATE N_NIMCALL(NI, skipEmptyStates__closureiters_1503)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, NI stateIdx);
1227 N_LIB_PRIVATE N_NIMCALL(void, delete__closureiters_1709)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, NI i);
1228 N_LIB_PRIVATE N_NIMCALL(void, delete__closureiters_1746)(tySequence__qwqHTkRvwhrRyENtudHQ7g** x, NI i);
1229 N_LIB_PRIVATE N_NIMCALL(void, del__closureiters_3571)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, NI i);
1230 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformStateAssignments__closureiters_1386)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1231 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStateAssgn__closureiters_45)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, NI stateNo);
1232 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStateAssgn__closureiters_41)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* toValue);
1233 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStateAccess__closureiters_35)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx);
1234 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getStateField__lambdalifting_4660)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
1235 N_LIB_PRIVATE N_NIMCALL(NI, stateFromGotoState__closureiters_1375)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1236 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, wrapIntoStateLoop__closureiters_1612)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1237 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, wrapIntoTryExcept__closureiters_1605)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1238 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newCatchBody__closureiters_1568)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1239 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, createExceptionTable__closureiters_1553)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx);
1240 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newArrayType__closureiters_1545)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI n, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
1241 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newType__ast_3896)(tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
1242 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3151)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
1243 N_LIB_PRIVATE N_NIMCALL(void, rawAddSon__ast_4288)(tyObject_TType__facALICuu8zUj0hjvbTLFg* father, tyObject_TType__facALICuu8zUj0hjvbTLFg* son, NIM_BOOL propagateHasAsgn);
1244 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntNode__ast_3723)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, NI64 intVal);
1245 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_2, ":state", 6);
1246 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_3, ":stateLoop", 10);
1247 extern TNimType NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
1248 extern TNimType NTIseqLtupleLn58pnode_idx58intTT__1I3cxybVrOXM64KW2dfERQ_;
1249 N_LIB_PRIVATE TNimType NTIkeyvaluepair__O3AtiO8fwKWfdl6NGmuzhw_;
1250 extern TNimType NTIint__rR5Bzr1D5krxoo1NcNyeMA_;
1251 extern TNimType NTIpsym__dG2QVH5Z69aMUY38zTqWxaA_;
1252 N_LIB_PRIVATE TNimType NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_;
1253 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_5, "unsupported control flow: \'finally: ... raise\' duplicated because of \'break\'", 76);
1254 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_7, "/home/runner/work/nightlies/nightlies/nim/compiler/closureiters.nim", 67);
1255 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_6 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
1256 ((NI) 1337),
1257 ((NI) 14)}
1258 ;
1259 extern TNimType NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_;
1260 extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo__lineinfos_280;
1261 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_8, "lowerStmtListExprs: constr typ.isNil", 36);
1262 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_9 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
1263 ((NI) 468),
1264 ((NI) 35)}
1265 ;
1266 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_10, ":tmpSlLower", 11);
1267 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_11, "lowerStmtListExpr(nkIf): ", 25);
1268 extern TNimType NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_;
1269 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_12 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
1270 ((NI) 546),
1271 ((NI) 23)}
1272 ;
1273 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_13, "lowerStmtListExpr(nkTryStmt): ", 30);
1274 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_14 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
1275 ((NI) 576),
1276 ((NI) 25)}
1277 ;
1278 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_15, "lowerStmtListExpr(nkCaseStmt): ", 31);
1279 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_16 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
1280 ((NI) 608),
1281 ((NI) 25)}
1282 ;
1283 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_17, "not", 3);
1284 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_18, "true", 4);
1285 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_19, "yield in expr not lowered", 25);
1286 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_20 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
1287 ((NI) 1420),
1288 ((NI) 17)}
1289 ;
1290 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_21, "transformClosureIteratorBody != s", 33);
1291 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_22 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
1292 ((NI) 888),
1293 ((NI) 23)}
1294 ;
1295 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_23, "of", 2);
1296 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_24, "getCurrentException", 19);
1297 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_25, "or", 2);
1298 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_26, ":curExc", 7);
1299 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_27, ":unrollFinally", 14);
1300 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_28, ":tmpResult", 10);
1301 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_29, "==", 2);
1302 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_30, "closureIterSetupExc", 19);
1303 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_31, "transformReturnsInTry != tryBody", 32);
1304 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_32 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
1305 ((NI) 997),
1306 ((NI) 21)}
1307 ;
1308 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_33, "transformClosureIteratorBody != tryBody", 39);
1309 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_34 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
1310 ((NI) 999),
1311 ((NI) 21)}
1312 ;
1313 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_35, "transformReturnsInTry != exceptBody", 35);
1314 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_36 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
1315 ((NI) 1004),
1316 ((NI) 21)}
1317 ;
1318 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_37, "transformClosureIteratorBody != exceptBody", 42);
1319 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_38 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
1320 ((NI) 1006),
1321 ((NI) 21)}
1322 ;
1323 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_39, "transformClosureIteratorBody != finallyBody", 43);
1324 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_40 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
1325 ((NI) 1011),
1326 ((NI) 21)}
1327 ;
1328 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_41, "closure iter ", 13);
1329 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__slVvvIjx75ivXdMpHiE9c9aQ_42 = {((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_7),
1330 ((NI) 1014),
1331 ((NI) 17)}
1332 ;
1333 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_43, "<", 1);
1334 STRING_LITERAL(TM__slVvvIjx75ivXdMpHiE9c9aQ_44, "-", 1);
1335 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5217;
N_INLINE(void,nimSetMem__systemZmemory_7)1336 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
1337 	void* T1_;
1338 	T1_ = (void*)0;
1339 	T1_ = memset(a, v, ((size_t) (size)));
1340 }
N_INLINE(void,nimZeroMem)1341 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
1342 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
1343 }
N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g,nextSymId__ast_3132)1344 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3132)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
1345 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
1346 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
1347 	(*x).symId += ((NI) 1);
1348 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
1349 	result.module = (*x).module;
1350 	result.item = (*x).symId;
1351 	return result;
1352 }
N_INLINE(NI,pluspercent___system_696)1353 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
1354 	NI result;
1355 	result = (NI)0;
1356 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
1357 	return result;
1358 }
N_INLINE(void,incRef__system_5308)1359 static N_INLINE(void, incRef__system_5308)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1360 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
1361 }
N_INLINE(NI,minuspercent___system_716)1362 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
1363 	NI result;
1364 	result = (NI)0;
1365 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
1366 	return result;
1367 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5270)1368 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5270)(void* usr) {
1369 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
1370 	NI T1_;
1371 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1372 	T1_ = (NI)0;
1373 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
1374 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
1375 	return result;
1376 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)1377 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
1378 	NIM_BOOL result;
1379 	result = (NIM_BOOL)0;
1380 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
1381 	return result;
1382 }
N_INLINE(void,rtlAddZCT__system_5313)1383 static N_INLINE(void, rtlAddZCT__system_5313)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1384 	addZCT__system_5264((&gch__system_5217.zct), c);
1385 }
N_INLINE(void,decRef__system_5315)1386 static N_INLINE(void, decRef__system_5315)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1387 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
1388 	{
1389 		NIM_BOOL T3_;
1390 		T3_ = (NIM_BOOL)0;
1391 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
1392 		if (!T3_) goto LA4_;
1393 		rtlAddZCT__system_5313(c);
1394 	}
1395 	LA4_: ;
1396 }
N_INLINE(void,asgnRef)1397 static N_INLINE(void, asgnRef)(void** dest, void* src) {
1398 	{
1399 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
1400 		if (!!((src == NIM_NIL))) goto LA3_;
1401 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1402 		T5_ = usrToCell__system_5270(src);
1403 		incRef__system_5308(T5_);
1404 	}
1405 	LA3_: ;
1406 	{
1407 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
1408 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
1409 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1410 		T10_ = usrToCell__system_5270((*dest));
1411 		decRef__system_5315(T10_);
1412 	}
1413 	LA8_: ;
1414 	(*dest) = src;
1415 }
N_INLINE(NI,len__ast_3198)1416 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1417 	NI result;
1418 	NI T1_;
1419 	result = (NI)0;
1420 	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
1421 	result = T1_;
1422 	return result;
1423 }
N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,pop__trees_32)1424 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, pop__trees_32)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** s) {
1425 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
1426 	NI L;
1427 	NI T1_;
1428 	result = NIM_NIL;
1429 	T1_ = ((*s) ? (*s)->Sup.len : 0);
1430 	L = (NI)(T1_ - ((NI) 1));
1431 	result = (*s)->data[L];
1432 	unsureAsgnRef((void**) (&(*s)), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*s))->Sup, (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) (L))));
1433 	return result;
1434 }
N_INLINE(void,pop__closureiters_3415)1435 static N_INLINE(void, pop__closureiters_3415)(tySequence__1I3cxybVrOXM64KW2dfERQ** s, tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw* Result) {
1436 	NI L;
1437 	NI T1_;
1438 	T1_ = ((*s) ? (*s)->Sup.len : 0);
1439 	L = (NI)(T1_ - ((NI) 1));
1440 	unsureAsgnRef((void**) (&(*Result).Field0), (*s)->data[L].Field0);
1441 	(*Result).Field1 = (*s)->data[L].Field1;
1442 	unsureAsgnRef((void**) (&(*s)), (tySequence__1I3cxybVrOXM64KW2dfERQ*) setLengthSeqV2(&((*s))->Sup, (&NTIseqLtupleLn58pnode_idx58intTT__1I3cxybVrOXM64KW2dfERQ_), ((NI) (L))));
1443 }
N_INLINE(tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw *,X5BX5D___closureiters_3437)1444 static N_INLINE(tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw*, X5BX5D___closureiters_3437)(tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw* s, NI sLen_0, NI i) {
1445 	tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw* result;
1446 	result = (tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw*)0;
1447 	result = (&s[(NI)(sLen_0 - i)]);
1448 	return result;
1449 }
N_INLINE(NI,slotsNeeded__pureZcollectionsZtables_42)1450 static N_INLINE(NI, slotsNeeded__pureZcollectionsZtables_42)(NI count) {
1451 	NI result;
1452 	result = (NI)0;
1453 	result = nextPowerOfTwo__pureZmath_177((NI)((NI)((NI)(((NI) (count)) * ((NI) 3)) / ((NI) 2)) + ((NI) 4)));
1454 	return result;
1455 }
N_NIMCALL(void,Marker_tySequence__gVogYzwlGNrCaz6jQnXRzA)1456 static N_NIMCALL(void, Marker_tySequence__gVogYzwlGNrCaz6jQnXRzA)(void* p, NI op) {
1457 	tySequence__gVogYzwlGNrCaz6jQnXRzA* a;
1458 	NI T1_;
1459 	a = (tySequence__gVogYzwlGNrCaz6jQnXRzA*)p;
1460 	T1_ = (NI)0;
1461 	for (T1_ = 0; T1_ < (a ? a->Sup.len : 0); T1_++) {
1462 	nimGCvisit((void*)a->data[T1_].Field2, op);
1463 	}
1464 }
N_NIMCALL(void,initTable__closureiters_3484)1465 N_LIB_PRIVATE N_NIMCALL(void, initTable__closureiters_3484)(NI initialSize, tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* Result) {
1466 	NI correctSizeX60gensym346_;
1467 	unsureAsgnRef((void**)&(*Result).data, NIM_NIL);
1468 	(*Result).counter = 0;
1469 	correctSizeX60gensym346_ = slotsNeeded__pureZcollectionsZtables_42(((NI) (initialSize)));
1470 	(*Result).counter = ((NI) 0);
1471 	unsureAsgnRef((void**) (&(*Result).data), (tySequence__gVogYzwlGNrCaz6jQnXRzA*) newSeq((&NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_), ((NI) (correctSizeX60gensym346_))));
1472 }
N_INLINE(NU64,hiXorLoFallback64__pureZhashes_35)1473 static N_INLINE(NU64, hiXorLoFallback64__pureZhashes_35)(NU64 a, NU64 b) {
1474 	NU64 result;
1475 	NU64 aH;
1476 	NU64 aL;
1477 	NU64 bH;
1478 	NU64 bL;
1479 	NU64 rHH;
1480 	NU64 rHL;
1481 	NU64 rLH;
1482 	NU64 rLL;
1483 	NU64 t;
1484 	NU64 c;
1485 	NU64 lo;
1486 	NU64 T6_;
1487 	NU64 hi;
1488 {	result = (NU64)0;
1489 	aH = (NU64)((NU64)(a) >> (NU64)(((NI) 32)));
1490 	aL = (NU64)(a & 4294967295ULL);
1491 	bH = (NU64)((NU64)(b) >> (NU64)(((NI) 32)));
1492 	bL = (NU64)(b & 4294967295ULL);
1493 	rHH = (NU64)((NU64)(aH) * (NU64)(bH));
1494 	rHL = (NU64)((NU64)(aH) * (NU64)(bL));
1495 	rLH = (NU64)((NU64)(aL) * (NU64)(bH));
1496 	rLL = (NU64)((NU64)(aL) * (NU64)(bL));
1497 	t = (NU64)((NU64)(rLL) + (NU64)((NU64)((NU64)(rHL) << (NU64)(((NI) 32)))));
1498 	{
1499 		if (!((NU64)(t) < (NU64)(rLL))) goto LA3_;
1500 		c = 1ULL;
1501 	}
1502 	goto LA1_;
1503 	LA3_: ;
1504 	{
1505 		c = 0ULL;
1506 	}
1507 	LA1_: ;
1508 	lo = (NU64)((NU64)(t) + (NU64)((NU64)((NU64)(rLH) << (NU64)(((NI) 32)))));
1509 	T6_ = (NU64)0;
1510 	{
1511 		if (!((NU64)(lo) < (NU64)(t))) goto LA9_;
1512 		T6_ = 1ULL;
1513 	}
1514 	goto LA7_;
1515 	LA9_: ;
1516 	{
1517 		T6_ = 0ULL;
1518 	}
1519 	LA7_: ;
1520 	c += T6_;
1521 	hi = (NU64)((NU64)((NU64)((NU64)((NU64)((NU64)(rHH) + (NU64)((NU64)((NU64)(rHL) >> (NU64)(((NI) 32)))))) + (NU64)((NU64)((NU64)(rLH) >> (NU64)(((NI) 32)))))) + (NU64)(c));
1522 	result = (NU64)(hi ^ lo);
1523 	goto BeforeRet_;
1524 	}BeforeRet_: ;
1525 	return result;
1526 }
N_INLINE(NU64,hiXorLo__pureZhashes_79)1527 static N_INLINE(NU64, hiXorLo__pureZhashes_79)(NU64 a, NU64 b) {
1528 	NU64 result;
1529 	result = (NU64)0;
1530 	result = hiXorLoFallback64__pureZhashes_35(a, b);
1531 	return result;
1532 }
N_INLINE(NI,hashWangYi1__pureZhashes_136)1533 static N_INLINE(NI, hashWangYi1__pureZhashes_136)(NU64 x) {
1534 	NI result;
1535 	NU64 T1_;
1536 	NU64 T2_;
1537 	result = (NI)0;
1538 	T1_ = (NU64)0;
1539 	T1_ = hiXorLo__pureZhashes_79(11562461410679940143ULL, (NU64)(x ^ 16646288086500911323ULL));
1540 	T2_ = (NU64)0;
1541 	T2_ = hiXorLo__pureZhashes_79(T1_, 16952864883938283885ULL);
1542 	result = ((NI) (T2_));
1543 	return result;
1544 }
N_INLINE(NI,hash__pureZhashes_128)1545 static N_INLINE(NI, hash__pureZhashes_128)(NI x) {
1546 	NI result;
1547 	result = (NI)0;
1548 	result = hashWangYi1__pureZhashes_136(((NU64) (x)));
1549 	return result;
1550 }
N_INLINE(NIM_BOOL,isFilled__pureZcollectionsZtables_31)1551 static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode) {
1552 	NIM_BOOL result;
1553 	result = (NIM_BOOL)0;
1554 	result = !((hcode == ((NI) 0)));
1555 	return result;
1556 }
N_INLINE(NI,nextTry__pureZcollectionsZtables_34)1557 static N_INLINE(NI, nextTry__pureZcollectionsZtables_34)(NI h, NI maxHash) {
1558 	NI result;
1559 	result = (NI)0;
1560 	result = (NI)((NI)(h + ((NI) 1)) & maxHash);
1561 	return result;
1562 }
N_INLINE(NI,rawGet__closureiters_1912)1563 static N_INLINE(NI, rawGet__closureiters_1912)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t, NI key, NI* hc) {
1564 	NI result;
1565 	NI h;
1566 	NI T10_;
1567 {	result = (NI)0;
1568 	(*hc) = hash__pureZhashes_128(key);
1569 	{
1570 		if (!((*hc) == ((NI) 0))) goto LA3_;
1571 		(*hc) = ((NI) 314159265);
1572 	}
1573 	LA3_: ;
1574 	{
1575 		NI T7_;
1576 		T7_ = (t.data ? t.data->Sup.len : 0);
1577 		if (!(T7_ == ((NI) 0))) goto LA8_;
1578 		result = ((NI) -1);
1579 		goto BeforeRet_;
1580 	}
1581 	LA8_: ;
1582 	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
1583 	h = (NI)((*hc) & T10_);
1584 	{
1585 		while (1) {
1586 			NIM_BOOL T13_;
1587 			NI T20_;
1588 			T13_ = (NIM_BOOL)0;
1589 			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
1590 			if (!T13_) goto LA12;
1591 			{
1592 				NIM_BOOL T16_;
1593 				T16_ = (NIM_BOOL)0;
1594 				T16_ = (t.data->data[h].Field0 == (*hc));
1595 				if (!(T16_)) goto LA17_;
1596 				T16_ = (t.data->data[h].Field1 == key);
1597 				LA17_: ;
1598 				if (!T16_) goto LA18_;
1599 				result = h;
1600 				goto BeforeRet_;
1601 			}
1602 			LA18_: ;
1603 			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
1604 			h = nextTry__pureZcollectionsZtables_34(h, T20_);
1605 		} LA12: ;
1606 	}
1607 	result = (NI)(((NI) -1) - h);
1608 	}BeforeRet_: ;
1609 	return result;
1610 }
N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ *,getOrDefault__closureiters_1903)1611 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getOrDefault__closureiters_1903)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t, NI key) {
1612 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
1613 	NI hcX60gensym308_;
1614 	NI indexX60gensym308_;
1615 	result = NIM_NIL;
1616 	hcX60gensym308_ = (NI)0;
1617 	indexX60gensym308_ = rawGet__closureiters_1912(t, key, (&hcX60gensym308_));
1618 	{
1619 		if (!(((NI) 0) <= indexX60gensym308_)) goto LA3_;
1620 		result = t.data->data[indexX60gensym308_].Field2;
1621 	}
1622 	LA3_: ;
1623 	return result;
1624 }
N_INLINE(NI,safeLen__ast_3191)1625 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1626 	NI result;
1627 	result = (NI)0;
1628 	{
1629 		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
1630 		result = ((NI) 0);
1631 	}
1632 	goto LA1_;
1633 	LA3_: ;
1634 	{
1635 		result = len__ast_3198(n);
1636 	}
1637 	LA1_: ;
1638 	return result;
1639 }
N_INLINE(NIM_BOOL,mustRehash__closureiters_2463)1640 static N_INLINE(NIM_BOOL, mustRehash__closureiters_2463)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t) {
1641 	NIM_BOOL result;
1642 	NIM_BOOL T1_;
1643 	NI T2_;
1644 	NI T4_;
1645 	result = (NIM_BOOL)0;
1646 	T1_ = (NIM_BOOL)0;
1647 	T2_ = (t.data ? t.data->Sup.len : 0);
1648 	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
1649 	if (T1_) goto LA3_;
1650 	T4_ = (t.data ? t.data->Sup.len : 0);
1651 	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
1652 	LA3_: ;
1653 	result = T1_;
1654 	return result;
1655 }
N_NIMCALL(void,rawInsert__closureiters_2916)1656 N_LIB_PRIVATE N_NIMCALL(void, rawInsert__closureiters_2916)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* t, tySequence__gVogYzwlGNrCaz6jQnXRzA** data, NI key, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* val, NI hc, NI h) {
1657 	(*data)->data[h].Field1 = key;
1658 	asgnRef((void**) (&(*data)->data[h].Field2), val);
1659 	(*data)->data[h].Field0 = hc;
1660 }
N_NIMCALL(void,enlarge__closureiters_2616)1661 N_LIB_PRIVATE N_NIMCALL(void, enlarge__closureiters_2616)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* t) {
1662 	tySequence__gVogYzwlGNrCaz6jQnXRzA* n;
1663 	NI T1_;
1664 	tySequence__gVogYzwlGNrCaz6jQnXRzA* T2_;
1665 	n = NIM_NIL;
1666 	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
1667 	n = (tySequence__gVogYzwlGNrCaz6jQnXRzA*) newSeq((&NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_), ((NI) ((NI)(T1_ * ((NI) 2)))));
1668 	T2_ = NIM_NIL;
1669 	T2_ = (*t).data;
1670 	unsureAsgnRef((void**) (&(*t).data), n);
1671 	n = T2_;
1672 	{
1673 		NI i;
1674 		NI colontmp_;
1675 		NI T4_;
1676 		NI res;
1677 		i = (NI)0;
1678 		colontmp_ = (NI)0;
1679 		T4_ = ((n ? n->Sup.len : 0)-1);
1680 		colontmp_ = T4_;
1681 		res = ((NI) 0);
1682 		{
1683 			while (1) {
1684 				NI eh;
1685 				if (!(res <= colontmp_)) goto LA6;
1686 				i = res;
1687 				eh = n->data[i].Field0;
1688 				{
1689 					NIM_BOOL T9_;
1690 					NI j;
1691 					NI T12_;
1692 					NI T17_;
1693 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T18_;
1694 					T9_ = (NIM_BOOL)0;
1695 					T9_ = isFilled__pureZcollectionsZtables_31(eh);
1696 					if (!T9_) goto LA10_;
1697 					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
1698 					j = (NI)(eh & T12_);
1699 					{
1700 						while (1) {
1701 							NIM_BOOL T15_;
1702 							NI T16_;
1703 							T15_ = (NIM_BOOL)0;
1704 							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
1705 							if (!T15_) goto LA14;
1706 							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
1707 							j = nextTry__pureZcollectionsZtables_34(j, T16_);
1708 						} LA14: ;
1709 					}
1710 					T17_ = (NI)0;
1711 					T17_ = n->data[i].Field1;
1712 					n->data[i].Field1 = 0;
1713 					T18_ = NIM_NIL;
1714 					T18_ = n->data[i].Field2;
1715 					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
1716 					rawInsert__closureiters_2916(t, (&(*t).data), T17_, T18_, eh, j);
1717 				}
1718 				LA10_: ;
1719 				res += ((NI) 1);
1720 			} LA6: ;
1721 		}
1722 	}
1723 }
N_INLINE(NI,rawGetKnownHC__closureiters_3085)1724 static N_INLINE(NI, rawGetKnownHC__closureiters_3085)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ t, NI key, NI hc) {
1725 	NI result;
1726 	NI h;
1727 	NI T6_;
1728 {	result = (NI)0;
1729 	{
1730 		NI T3_;
1731 		T3_ = (t.data ? t.data->Sup.len : 0);
1732 		if (!(T3_ == ((NI) 0))) goto LA4_;
1733 		result = ((NI) -1);
1734 		goto BeforeRet_;
1735 	}
1736 	LA4_: ;
1737 	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
1738 	h = (NI)(hc & T6_);
1739 	{
1740 		while (1) {
1741 			NIM_BOOL T9_;
1742 			NI T16_;
1743 			T9_ = (NIM_BOOL)0;
1744 			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
1745 			if (!T9_) goto LA8;
1746 			{
1747 				NIM_BOOL T12_;
1748 				T12_ = (NIM_BOOL)0;
1749 				T12_ = (t.data->data[h].Field0 == hc);
1750 				if (!(T12_)) goto LA13_;
1751 				T12_ = (t.data->data[h].Field1 == key);
1752 				LA13_: ;
1753 				if (!T12_) goto LA14_;
1754 				result = h;
1755 				goto BeforeRet_;
1756 			}
1757 			LA14_: ;
1758 			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
1759 			h = nextTry__pureZcollectionsZtables_34(h, T16_);
1760 		} LA8: ;
1761 	}
1762 	result = (NI)(((NI) -1) - h);
1763 	}BeforeRet_: ;
1764 	return result;
1765 }
N_NIMCALL(void,X5BX5Deq___closureiters_2290)1766 N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___closureiters_2290)(tyObject_Table__5WMmzblM3wEpYUTgMBzetQ* t, NI key, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* val) {
1767 	NI hc;
1768 	NI index;
1769 	{
1770 		NI T3_;
1771 		NI correctSizeX60gensym318_;
1772 		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
1773 		if (!(T3_ == ((NI) 0))) goto LA4_;
1774 		correctSizeX60gensym318_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
1775 		(*t).counter = ((NI) 0);
1776 		unsureAsgnRef((void**) (&(*t).data), (tySequence__gVogYzwlGNrCaz6jQnXRzA*) newSeq((&NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_), ((NI) (correctSizeX60gensym318_))));
1777 	}
1778 	LA4_: ;
1779 	hc = (NI)0;
1780 	index = rawGet__closureiters_1912((*t), key, (&hc));
1781 	{
1782 		if (!(((NI) 0) <= index)) goto LA8_;
1783 		asgnRef((void**) (&(*t).data->data[index].Field2), val);
1784 	}
1785 	goto LA6_;
1786 	LA8_: ;
1787 	{
1788 		{
1789 			NI T13_;
1790 			NI correctSizeX60gensym321_;
1791 			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
1792 			if (!(T13_ == ((NI) 0))) goto LA14_;
1793 			correctSizeX60gensym321_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
1794 			(*t).counter = ((NI) 0);
1795 			unsureAsgnRef((void**) (&(*t).data), (tySequence__gVogYzwlGNrCaz6jQnXRzA*) newSeq((&NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_), ((NI) (correctSizeX60gensym321_))));
1796 		}
1797 		LA14_: ;
1798 		{
1799 			NIM_BOOL T18_;
1800 			T18_ = (NIM_BOOL)0;
1801 			T18_ = mustRehash__closureiters_2463((*t));
1802 			if (!T18_) goto LA19_;
1803 			enlarge__closureiters_2616(t);
1804 			index = rawGetKnownHC__closureiters_3085((*t), key, hc);
1805 		}
1806 		LA19_: ;
1807 		index = (NI)(((NI) -1) - index);
1808 		rawInsert__closureiters_2916(t, (&(*t).data), key, val, hc, index);
1809 		(*t).counter += ((NI) 1);
1810 	}
1811 	LA6_: ;
1812 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,freshVars__closureiters_1804)1813 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, freshVars__closureiters_1804)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_FreshVarsContext__BITJ25TBEN8CE4NK59coN0w* c) {
1814 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
1815 	result = NIM_NIL;
1816 	switch ((*n).kind) {
1817 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
1818 	{
1819 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* x;
1820 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym307_;
1821 		xX60gensym307_ = (*n)._kind_4.sym;
1822 		x = getOrDefault__closureiters_1903((*c).tab, (NI)((NI)((NU32)(((NI) ((*xX60gensym307_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym307_).Sup.itemId.item))));
1823 		{
1824 			if (!(x == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA4_;
1825 			result = n;
1826 		}
1827 		goto LA2_;
1828 		LA4_: ;
1829 		{
1830 			result = newSymNode__ast_3719(x, (*n).info);
1831 		}
1832 		LA2_: ;
1833 	}
1834 	break;
1835 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 2):
1836 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
1837 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
1838 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
1839 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
1840 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
1841 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
1842 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
1843 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
1844 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
1845 	{
1846 		result = n;
1847 	}
1848 	break;
1849 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
1850 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
1851 	{
1852 		result = copyNode__ast_4336(n);
1853 		{
1854 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* it;
1855 			it = NIM_NIL;
1856 			{
1857 				NI i;
1858 				NI colontmp_;
1859 				NI i_2;
1860 				i = (NI)0;
1861 				colontmp_ = (NI)0;
1862 				colontmp_ = safeLen__ast_3191(n);
1863 				i_2 = ((NI) 0);
1864 				{
1865 					while (1) {
1866 						if (!(i_2 < colontmp_)) goto LA12;
1867 						i = i_2;
1868 						it = (*n)._kind_6.sons->data[i];
1869 						{
1870 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* idefs;
1871 							if (!((*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 35) || (*it).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 36))) goto LA15_;
1872 							idefs = copyNode__ast_4336(it);
1873 							{
1874 								NI v;
1875 								NI colontmp__2;
1876 								NI T18_;
1877 								NI res;
1878 								v = (NI)0;
1879 								colontmp__2 = (NI)0;
1880 								T18_ = (NI)0;
1881 								T18_ = len__ast_3198(it);
1882 								colontmp__2 = (NI)(T18_ - ((NI) 3));
1883 								res = ((NI) 0);
1884 								{
1885 									while (1) {
1886 										if (!(res <= colontmp__2)) goto LA20;
1887 										v = res;
1888 										{
1889 											tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* x_2;
1890 											tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T25_;
1891 											tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* xX60gensym316_;
1892 											tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
1893 											if (!((*(*it)._kind_6.sons->data[v]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA23_;
1894 											T25_ = nextSymId__ast_3132((*c).idgen);
1895 											x_2 = copySym__ast_4054((*(*it)._kind_6.sons->data[v])._kind_4.sym, T25_);
1896 											xX60gensym316_ = (*(*it)._kind_6.sons->data[v])._kind_4.sym;
1897 											X5BX5Deq___closureiters_2290((&(*c).tab), (NI)((NI)((NU32)(((NI) ((*xX60gensym316_).Sup.itemId.module))) << (NU32)(((NI) 20))) + ((NI) ((*xX60gensym316_).Sup.itemId.item))), x_2);
1898 											T26_ = NIM_NIL;
1899 											T26_ = newSymNode__ast_3716(x_2);
1900 											add__ast_4797(idefs, T26_);
1901 										}
1902 										goto LA21_;
1903 										LA23_: ;
1904 										{
1905 											add__ast_4797(idefs, (*it)._kind_6.sons->data[v]);
1906 										}
1907 										LA21_: ;
1908 										res += ((NI) 1);
1909 									} LA20: ;
1910 								}
1911 							}
1912 							{
1913 								NI rest;
1914 								NI colontmp__3;
1915 								NI colontmp__4;
1916 								NI T29_;
1917 								NI i_3;
1918 								rest = (NI)0;
1919 								colontmp__3 = (NI)0;
1920 								colontmp__4 = (NI)0;
1921 								T29_ = (NI)0;
1922 								T29_ = len__ast_3198(it);
1923 								colontmp__3 = (NI)(T29_ - ((NI) 2));
1924 								colontmp__4 = len__ast_3198(it);
1925 								i_3 = colontmp__3;
1926 								{
1927 									while (1) {
1928 										if (!(i_3 < colontmp__4)) goto LA31;
1929 										rest = i_3;
1930 										add__ast_4797(idefs, (*it)._kind_6.sons->data[rest]);
1931 										i_3 += ((NI) 1);
1932 									} LA31: ;
1933 								}
1934 							}
1935 							add__ast_4797(result, idefs);
1936 						}
1937 						goto LA13_;
1938 						LA15_: ;
1939 						{
1940 							add__ast_4797(result, it);
1941 						}
1942 						LA13_: ;
1943 						i_2 += ((NI) 1);
1944 					} LA12: ;
1945 				}
1946 			}
1947 		}
1948 	}
1949 	break;
1950 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
1951 	{
1952 		liMessage__msgs_1118((*c).config, (*c).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_5), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__slVvvIjx75ivXdMpHiE9c9aQ_6, NIM_FALSE);
1953 	}
1954 	break;
1955 	default:
1956 	{
1957 		result = n;
1958 		{
1959 			NI i_4;
1960 			NI colontmp__5;
1961 			NI i_5;
1962 			i_4 = (NI)0;
1963 			colontmp__5 = (NI)0;
1964 			colontmp__5 = safeLen__ast_3191(n);
1965 			i_5 = ((NI) 0);
1966 			{
1967 				while (1) {
1968 					if (!(i_5 < colontmp__5)) goto LA37;
1969 					i_4 = i_5;
1970 					asgnRef((void**) (&(*result)._kind_6.sons->data[i_4]), freshVars__closureiters_1804((*n)._kind_6.sons->data[i_4], c));
1971 					i_5 += ((NI) 1);
1972 				} LA37: ;
1973 			}
1974 		}
1975 	}
1976 	break;
1977 	}
1978 	return result;
1979 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,preprocess__closureiters_3362)1980 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, preprocess__closureiters_3362)(tyObject_PreprocessContext__ATjkivkWYrBstrMNxiy9cNw* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
1981 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
1982 	result = NIM_NIL;
1983 	result = n;
1984 	switch ((*n).kind) {
1985 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
1986 	{
1987 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* f;
1988 		f = lastSon__ast_4832(n);
1989 		{
1990 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
1991 			NI T7_;
1992 			if (!((*f).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA4_;
1993 			T6_ = NIM_NIL;
1994 			T6_ = lastSon__ast_4832(f);
1995 			unsureAsgnRef((void**) (&(*c).finallys), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*c).finallys), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
1996 			T7_ = (*c).finallys->Sup.len++;
1997 			asgnRef((void**) (&(*c).finallys->data[T7_]), T6_);
1998 		}
1999 		LA4_: ;
2000 		{
2001 			NI i;
2002 			NI colontmp_;
2003 			NI i_2;
2004 			i = (NI)0;
2005 			colontmp_ = (NI)0;
2006 			colontmp_ = len__ast_3198(n);
2007 			i_2 = ((NI) 0);
2008 			{
2009 				while (1) {
2010 					if (!(i_2 < colontmp_)) goto LA10;
2011 					i = i_2;
2012 					asgnRef((void**) (&(*result)._kind_6.sons->data[i]), preprocess__closureiters_3362(c, (*n)._kind_6.sons->data[i]));
2013 					i_2 += ((NI) 1);
2014 				} LA10: ;
2015 			}
2016 		}
2017 		{
2018 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
2019 			if (!((*f).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA13_;
2020 			T15_ = NIM_NIL;
2021 			T15_ = pop__trees_32((&(*c).finallys));
2022 			(void)(T15_);
2023 		}
2024 		LA13_: ;
2025 	}
2026 	break;
2027 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
2028 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
2029 	{
2030 		tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw T17_;
2031 		NI T18_;
2032 		NI T19_;
2033 		tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw T23_;
2034 		nimZeroMem((void*)(&T17_), sizeof(tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw));
2035 		T17_.Field0 = n;
2036 		T18_ = ((*c).finallys ? (*c).finallys->Sup.len : 0);
2037 		T17_.Field1 = T18_;
2038 		unsureAsgnRef((void**) (&(*c).blocks), (tySequence__1I3cxybVrOXM64KW2dfERQ*) incrSeqV3((TGenericSeq*)((*c).blocks), (&NTIseqLtupleLn58pnode_idx58intTT__1I3cxybVrOXM64KW2dfERQ_)));
2039 		T19_ = (*c).blocks->Sup.len++;
2040 		asgnRef((void**) (&(*c).blocks->data[T19_].Field0), T17_.Field0);
2041 		(*c).blocks->data[T19_].Field1 = T17_.Field1;
2042 		{
2043 			NI i_3;
2044 			NI colontmp__2;
2045 			NI i_4;
2046 			i_3 = (NI)0;
2047 			colontmp__2 = (NI)0;
2048 			colontmp__2 = len__ast_3198(n);
2049 			i_4 = ((NI) 0);
2050 			{
2051 				while (1) {
2052 					if (!(i_4 < colontmp__2)) goto LA22;
2053 					i_3 = i_4;
2054 					asgnRef((void**) (&(*result)._kind_6.sons->data[i_3]), preprocess__closureiters_3362(c, (*n)._kind_6.sons->data[i_3]));
2055 					i_4 += ((NI) 1);
2056 				} LA22: ;
2057 			}
2058 		}
2059 		nimZeroMem((void*)(&T23_), sizeof(tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw));
2060 		pop__closureiters_3415((&(*c).blocks), (&T23_));
2061 		(void)(T23_);
2062 	}
2063 	break;
2064 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
2065 	{
2066 		{
2067 			NI T27_;
2068 			T27_ = ((*c).blocks ? (*c).blocks->Sup.len : 0);
2069 			if (!(T27_ == ((NI) 0))) goto LA28_;
2070 		}
2071 		goto LA25_;
2072 		LA28_: ;
2073 		{
2074 			NI fin;
2075 			fin = ((NI) -1);
2076 			{
2077 				tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw* T35_;
2078 				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA33_;
2079 				T35_ = (tyTuple__FyNGItFCBJSXLJ9aJSzlX9aw*)0;
2080 				T35_ = X5BX5D___closureiters_3437((*c).blocks->data, ((*c).blocks ? (*c).blocks->Sup.len : 0), ((NI) 1));
2081 				fin = (*T35_).Field1;
2082 			}
2083 			goto LA31_;
2084 			LA33_: ;
2085 			{
2086 				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3))) goto LA37_;
2087 				{
2088 					NI i_5;
2089 					NI colontmp__3;
2090 					NI T40_;
2091 					NI res;
2092 					i_5 = (NI)0;
2093 					colontmp__3 = (NI)0;
2094 					T40_ = (((*c).blocks ? (*c).blocks->Sup.len : 0)-1);
2095 					colontmp__3 = T40_;
2096 					res = colontmp__3;
2097 					{
2098 						while (1) {
2099 							if (!(((NI) 0) <= res)) goto LA42;
2100 							i_5 = res;
2101 							{
2102 								NIM_BOOL T45_;
2103 								NIM_BOOL T46_;
2104 								T45_ = (NIM_BOOL)0;
2105 								T46_ = (NIM_BOOL)0;
2106 								T46_ = ((*(*c).blocks->data[i_5].Field0).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112));
2107 								if (!(T46_)) goto LA47_;
2108 								T46_ = ((*(*(*c).blocks->data[i_5].Field0)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
2109 								LA47_: ;
2110 								T45_ = T46_;
2111 								if (!(T45_)) goto LA48_;
2112 								T45_ = ((*(*(*c).blocks->data[i_5].Field0)._kind_6.sons->data[((NI) 0)])._kind_4.sym == (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
2113 								LA48_: ;
2114 								if (!T45_) goto LA49_;
2115 								fin = (*c).blocks->data[i_5].Field1;
2116 								goto LA39;
2117 							}
2118 							LA49_: ;
2119 							res -= ((NI) 1);
2120 						} LA42: ;
2121 					}
2122 				} LA39: ;
2123 			}
2124 			goto LA31_;
2125 			LA37_: ;
2126 			LA31_: ;
2127 			{
2128 				if (!(((NI) 0) <= fin)) goto LA53_;
2129 				result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
2130 				{
2131 					NI i_6;
2132 					NI colontmp__4;
2133 					NI T56_;
2134 					NI res_2;
2135 					i_6 = (NI)0;
2136 					colontmp__4 = (NI)0;
2137 					T56_ = (((*c).finallys ? (*c).finallys->Sup.len : 0)-1);
2138 					colontmp__4 = T56_;
2139 					res_2 = colontmp__4;
2140 					{
2141 						while (1) {
2142 							tyObject_FreshVarsContext__BITJ25TBEN8CE4NK59coN0w vars;
2143 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T59_;
2144 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T60_;
2145 							if (!(fin <= res_2)) goto LA58;
2146 							i_6 = res_2;
2147 							nimZeroMem((void*)(&vars), sizeof(tyObject_FreshVarsContext__BITJ25TBEN8CE4NK59coN0w));
2148 							nimZeroMem((void*)(&vars), sizeof(tyObject_FreshVarsContext__BITJ25TBEN8CE4NK59coN0w));
2149 							initTable__closureiters_3484(((NI) 32), (&vars.tab));
2150 							vars.config = (*c).config;
2151 							vars.info = (*n).info;
2152 							vars.idgen = (*c).idgen;
2153 							T59_ = NIM_NIL;
2154 							T59_ = preprocess__closureiters_3362(c, (*c).finallys->data[i_6]);
2155 							T60_ = NIM_NIL;
2156 							T60_ = freshVars__closureiters_1804(T59_, (&vars));
2157 							add__ast_4797(result, T60_);
2158 							unsureAsgnRef((void**) (&(*c).idgen), vars.idgen);
2159 							res_2 -= ((NI) 1);
2160 						} LA58: ;
2161 					}
2162 				}
2163 				add__ast_4797(result, n);
2164 			}
2165 			LA53_: ;
2166 		}
2167 		LA25_: ;
2168 	}
2169 	break;
2170 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
2171 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
2172 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
2173 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
2174 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
2175 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
2176 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
2177 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
2178 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
2179 	{
2180 	}
2181 	break;
2182 	default:
2183 	{
2184 		{
2185 			NI i_7;
2186 			NI colontmp__5;
2187 			NI i_8;
2188 			i_7 = (NI)0;
2189 			colontmp__5 = (NI)0;
2190 			colontmp__5 = len__ast_3198(n);
2191 			i_8 = ((NI) 0);
2192 			{
2193 				while (1) {
2194 					if (!(i_8 < colontmp__5)) goto LA65;
2195 					i_7 = i_8;
2196 					asgnRef((void**) (&(*result)._kind_6.sons->data[i_7]), preprocess__closureiters_3362(c, (*n)._kind_6.sons->data[i_7]));
2197 					i_8 += ((NI) 1);
2198 				} LA65: ;
2199 			}
2200 		}
2201 	}
2202 	break;
2203 	}
2204 	return result;
2205 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,toStmtList__closureiters_136)2206 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, toStmtList__closureiters_136)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
2207 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2208 	result = NIM_NIL;
2209 	result = n;
2210 	{
2211 		if (!!(((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115) || (*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126)))) goto LA3_;
2212 		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
2213 		add__ast_4797(result, n);
2214 	}
2215 	LA3_: ;
2216 	return result;
2217 }
N_NIMCALL(NI,newState__closureiters_97)2218 N_LIB_PRIVATE N_NIMCALL(NI, newState__closureiters_97)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut) {
2219 	NI result;
2220 	NI T1_;
2221 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* resLit;
2222 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
2223 	NI T2_;
2224 	NI T3_;
2225 	result = (NI)0;
2226 	T1_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
2227 	result = T1_;
2228 	resLit = newIntLit__lowerings_695((*ctx).g, (*n).info, ((NI64) (result)));
2229 	s = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 157), (*n).info);
2230 	add__ast_4797(s, resLit);
2231 	add__ast_4797(s, n);
2232 	unsureAsgnRef((void**) (&(*ctx).states), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) incrSeqV3((TGenericSeq*)((*ctx).states), (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_)));
2233 	T2_ = (*ctx).states->Sup.len++;
2234 	asgnRef((void**) (&(*ctx).states->data[T2_]), s);
2235 	unsureAsgnRef((void**) (&(*ctx).exceptionTable), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) incrSeqV3((TGenericSeq*)((*ctx).exceptionTable), (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_)));
2236 	T3_ = (*ctx).exceptionTable->Sup.len++;
2237 	(*ctx).exceptionTable->data[T3_] = (*ctx).curExcHandlingState;
2238 	{
2239 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
2240 		if (!!((gotoOut == 0))) goto LA6_;
2241 		T8_ = NIM_NIL;
2242 		T8_ = newIntLit__lowerings_695((*ctx).g, (*gotoOut).info, ((NI64) (result)));
2243 		add__ast_4797(gotoOut, T8_);
2244 	}
2245 	LA6_: ;
2246 	return result;
2247 }
N_INLINE(void,nimGCunrefRC1)2248 static N_INLINE(void, nimGCunrefRC1)(void* p) {
2249 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T1_;
2250 	T1_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
2251 	T1_ = usrToCell__system_5270(p);
2252 	decRef__system_5315(T1_);
2253 }
N_NIMCALL(void,add__closureiters_406)2254 N_LIB_PRIVATE N_NIMCALL(void, add__closureiters_406)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** y, NI yLen_0) {
2255 	NI xl;
2256 	NI T1_;
2257 	T1_ = ((*x) ? (*x)->Sup.len : 0);
2258 	xl = T1_;
2259 	unsureAsgnRef((void**) (&(*x)), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*x))->Sup, (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) ((NI)(xl + yLen_0)))));
2260 	{
2261 		NI i;
2262 		NI colontmp_;
2263 		NI res;
2264 		i = (NI)0;
2265 		colontmp_ = (NI)0;
2266 		colontmp_ = (yLen_0-1);
2267 		res = ((NI) 0);
2268 		{
2269 			while (1) {
2270 				if (!(res <= colontmp_)) goto LA4;
2271 				i = res;
2272 				asgnRef((void**) (&(*x)->data[(NI)(xl + i)]), y[i]);
2273 				res += ((NI) 1);
2274 			} LA4: ;
2275 		}
2276 	}
2277 }
N_NIMCALL(void,exprToStmtList__closureiters_385)2278 N_LIB_PRIVATE N_NIMCALL(void, exprToStmtList__closureiters_385)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyTuple__EFqgCXJ4d8PgqOdFJmldsQ* Result) {
2279 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
2280 	unsureAsgnRef((void**)&(*Result).Field0, NIM_NIL);
2281 	unsureAsgnRef((void**)&(*Result).Field1, NIM_NIL);
2282 	unsureAsgnRef((void**) (&(*Result).Field0), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info));
2283 	if ((*(*Result).Field0)._kind_6.sons) { nimGCunrefRC1((*(*Result).Field0)._kind_6.sons); (*(*Result).Field0)._kind_6.sons = NIM_NIL; }
2284 	n_2 = n;
2285 	{
2286 		while (1) {
2287 			NI T3_;
2288 			NI T4_;
2289 			if (!((*n_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA2;
2290 			add__closureiters_406((&(*(*Result).Field0)._kind_6.sons), (*n_2)._kind_6.sons->data, ((*n_2)._kind_6.sons ? (*n_2)._kind_6.sons->Sup.len : 0));
2291 			T3_ = (NI)0;
2292 			T3_ = len__ast_3198((*Result).Field0);
2293 			asgnRef((void**) (&(*(*Result).Field0)._kind_6.sons), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*(*Result).Field0)._kind_6.sons)->Sup, (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) ((NI)(T3_ - ((NI) 1))))));
2294 			T4_ = (NI)0;
2295 			T4_ = len__ast_3198(n_2);
2296 			n_2 = (*n_2)._kind_6.sons->data[(NI)(T4_ - ((NI) 1))];
2297 		} LA2: ;
2298 	}
2299 	unsureAsgnRef((void**) (&(*Result).Field1), n_2);
2300 }
N_INLINE(NIM_BOOL,isEmptyType__ast_4779)2301 static N_INLINE(NIM_BOOL, isEmptyType__ast_4779)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
2302 	NIM_BOOL result;
2303 	NIM_BOOL T1_;
2304 	result = (NIM_BOOL)0;
2305 	T1_ = (NIM_BOOL)0;
2306 	T1_ = (t == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
2307 	if (T1_) goto LA2_;
2308 	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7));
2309 	LA2_: ;
2310 	result = T1_;
2311 	return result;
2312 }
N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ *,newEnvVar__closureiters_49)2313 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newEnvVar__closureiters_49)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, NimStringDesc* name, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
2314 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
2315 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
2316 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T2_;
2317 	result = NIM_NIL;
2318 	T1_ = NIM_NIL;
2319 	T1_ = getIdent__idents_143((*(*ctx).g).cache, name);
2320 	T2_ = nextSymId__ast_3132((*ctx).idgen);
2321 	result = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8), T1_, T2_, (*ctx).fn, (*(*ctx).fn).info, 0);
2322 	asgnRef((void**) (&(*result).typ), typ);
2323 	{
2324 		if (!!(((*ctx).stateVarSym == 0))) goto LA5_;
2325 		{
2326 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
2327 			if (!((*ctx).tempVars == 0)) goto LA9_;
2328 			unsureAsgnRef((void**) (&(*ctx).tempVars), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*(*ctx).fn).info));
2329 			T11_ = NIM_NIL;
2330 			T11_ = newSymNode__ast_3716(result);
2331 			addVar__lowerings_63((*ctx).tempVars, T11_);
2332 		}
2333 		LA9_: ;
2334 	}
2335 	goto LA3_;
2336 	LA5_: ;
2337 	{
2338 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* envParam;
2339 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T13_;
2340 		envParam = getEnvParam__lambdalifting_131((*ctx).fn);
2341 		T13_ = NIM_NIL;
2342 		T13_ = lastSon__ast_3743((*envParam).typ);
2343 		result = addUniqueField__lowerings_443(T13_, result, (*(*ctx).g).cache, (*ctx).idgen);
2344 	}
2345 	LA3_: ;
2346 	return result;
2347 }
N_INLINE(void,nimCopyMem)2348 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
2349 	void* T1_;
2350 	T1_ = (void*)0;
2351 	T1_ = memcpy(dest, source, ((size_t) (size)));
2352 }
N_INLINE(void,copyMem__system_1727)2353 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
2354 	nimCopyMem(dest, source, size);
2355 }
N_INLINE(void,appendString)2356 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
2357 	{
2358 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
2359 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
2360 		(*dest).Sup.len += (*src).Sup.len;
2361 	}
2362 	LA3_: ;
2363 }
N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ *,newTempVar__closureiters_167)2364 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, newTempVar__closureiters_167)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
2365 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
2366 	NimStringDesc* T1_;
2367 	NimStringDesc* T2_;
2368 	result = NIM_NIL;
2369 	T1_ = NIM_NIL;
2370 	T2_ = NIM_NIL;
2371 	T2_ = dollar___systemZdollars_3((*ctx).tempVarId);
2372 	T1_ = rawNewString((T2_ ? T2_->Sup.len : 0) + 11);
2373 appendString(T1_, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_10));
2374 appendString(T1_, T2_);
2375 	result = newEnvVar__closureiters_49(ctx, T1_, typ);
2376 	(*ctx).tempVarId += ((NI) 1);
2377 	return result;
2378 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newEnvVarAccess__closureiters_70)2379 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newEnvVarAccess__closureiters_70)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
2380 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2381 	result = NIM_NIL;
2382 	{
2383 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T5_;
2384 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
2385 		if (!((*ctx).stateVarSym == 0)) goto LA3_;
2386 		T5_ = NIM_NIL;
2387 		T5_ = getEnvParam__lambdalifting_131((*ctx).fn);
2388 		T6_ = NIM_NIL;
2389 		T6_ = newSymNode__ast_3716(T5_);
2390 		result = rawIndirectAccess__lowerings_326(T6_, s, (*(*ctx).fn).info);
2391 	}
2392 	goto LA1_;
2393 	LA3_: ;
2394 	{
2395 		result = newSymNode__ast_3716(s);
2396 	}
2397 	LA1_: ;
2398 	return result;
2399 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newEnvVarAsgn__closureiters_441)2400 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newEnvVarAsgn__closureiters_441)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v) {
2401 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2402 	result = NIM_NIL;
2403 	{
2404 		NIM_BOOL T3_;
2405 		T3_ = (NIM_BOOL)0;
2406 		T3_ = isEmptyType__ast_4779((*v).typ);
2407 		if (!T3_) goto LA4_;
2408 		result = v;
2409 	}
2410 	goto LA1_;
2411 	LA4_: ;
2412 	{
2413 		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T7_;
2414 		nimZeroMem((void*)T7_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
2415 		T7_[0] = newEnvVarAccess__closureiters_70(ctx, s);
2416 		T7_[1] = v;
2417 		result = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T7_, 2);
2418 		(*result).info = (*v).info;
2419 	}
2420 	LA1_: ;
2421 	return result;
2422 }
N_NIMCALL(void,addExprAssgn__closureiters_446)2423 N_LIB_PRIVATE N_NIMCALL(void, addExprAssgn__closureiters_446)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* output, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* input, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym) {
2424 	{
2425 		tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T5_;
2426 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st;
2427 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res;
2428 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
2429 		if (!((*input).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA3_;
2430 		nimZeroMem((void*)(&T5_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
2431 		exprToStmtList__closureiters_385(input, (&T5_));
2432 		st = NIM_NIL;
2433 		st = T5_.Field0;
2434 		res = NIM_NIL;
2435 		res = T5_.Field1;
2436 		add__ast_4797(output, st);
2437 		T6_ = NIM_NIL;
2438 		T6_ = newEnvVarAsgn__closureiters_441(ctx, sym, res);
2439 		add__ast_4797(output, T6_);
2440 	}
2441 	goto LA1_;
2442 	LA3_: ;
2443 	{
2444 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
2445 		T8_ = NIM_NIL;
2446 		T8_ = newEnvVarAsgn__closureiters_441(ctx, sym, input);
2447 		add__ast_4797(output, T8_);
2448 	}
2449 	LA1_: ;
2450 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,convertExprBodyToAsgn__closureiters_469)2451 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, convertExprBodyToAsgn__closureiters_469)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exprBody, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* res) {
2452 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2453 	result = NIM_NIL;
2454 	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*exprBody).info);
2455 	addExprAssgn__closureiters_446(ctx, result, exprBody, res);
2456 	return result;
2457 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newNotCall__closureiters_474)2458 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNotCall__closureiters_474)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* e) {
2459 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2460 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T1_;
2461 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T2_;
2462 	result = NIM_NIL;
2463 	nimZeroMem((void*)T1_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
2464 	T2_ = NIM_NIL;
2465 	T2_ = getSysMagic__magicsys_29(g, (*e).info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_17), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 96));
2466 	T1_[0] = newSymNode__ast_3719(T2_, (*e).info);
2467 	T1_[1] = e;
2468 	result = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T1_, 2);
2469 	asgnRef((void**) (&(*result).typ), getSysType__magicsys_60(g, (*e).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
2470 	return result;
2471 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,lowerStmtListExprs__closureiters_478)2472 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lowerStmtListExprs__closureiters_478)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NIM_BOOL* needsSplit) {
2473 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2474 	result = NIM_NIL;
2475 	result = n;
2476 	switch ((*n).kind) {
2477 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
2478 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
2479 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
2480 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
2481 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
2482 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
2483 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
2484 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
2485 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
2486 	{
2487 	}
2488 	break;
2489 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 104):
2490 	{
2491 		NIM_BOOL ns;
2492 		ns = NIM_FALSE;
2493 		{
2494 			NI i;
2495 			NI colontmp_;
2496 			NI i_2;
2497 			i = (NI)0;
2498 			colontmp_ = (NI)0;
2499 			colontmp_ = len__ast_3198(n);
2500 			i_2 = ((NI) 0);
2501 			{
2502 				while (1) {
2503 					if (!(i_2 < colontmp_)) goto LA5;
2504 					i = i_2;
2505 					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i], (&ns)));
2506 					i_2 += ((NI) 1);
2507 				} LA5: ;
2508 			}
2509 		}
2510 		{
2511 			tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T10_;
2512 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st;
2513 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex;
2514 			if (!ns) goto LA8_;
2515 			result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
2516 			nimZeroMem((void*)(&T10_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
2517 			exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T10_));
2518 			st = NIM_NIL;
2519 			st = T10_.Field0;
2520 			ex = NIM_NIL;
2521 			ex = T10_.Field1;
2522 			add__ast_4797(result, st);
2523 			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex);
2524 			add__ast_4797(result, n);
2525 		}
2526 		LA8_: ;
2527 		(*needsSplit) = NIM_TRUE;
2528 	}
2529 	break;
2530 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 37):
2531 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 38):
2532 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 160):
2533 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41):
2534 	{
2535 		NIM_BOOL ns_2;
2536 		ns_2 = NIM_FALSE;
2537 		{
2538 			NI i_3;
2539 			NI colontmp__2;
2540 			NI i_4;
2541 			i_3 = (NI)0;
2542 			colontmp__2 = (NI)0;
2543 			colontmp__2 = len__ast_3198(n);
2544 			i_4 = ((NI) 0);
2545 			{
2546 				while (1) {
2547 					if (!(i_4 < colontmp__2)) goto LA14;
2548 					i_3 = i_4;
2549 					asgnRef((void**) (&(*n)._kind_6.sons->data[i_3]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_3], (&ns_2)));
2550 					i_4 += ((NI) 1);
2551 				} LA14: ;
2552 			}
2553 		}
2554 		{
2555 			if (!ns_2) goto LA17_;
2556 			(*needsSplit) = NIM_TRUE;
2557 			result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
2558 			{
2559 				if (!((*n).typ == 0)) goto LA21_;
2560 				internalErrorImpl__msgs_1431((*(*ctx).g).config, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_8), TM__slVvvIjx75ivXdMpHiE9c9aQ_9);
2561 			}
2562 			LA21_: ;
2563 			asgnRef((void**) (&(*result).typ), (*n).typ);
2564 			{
2565 				NI i_5;
2566 				NI colontmp__3;
2567 				NI i_6;
2568 				i_5 = (NI)0;
2569 				colontmp__3 = (NI)0;
2570 				colontmp__3 = len__ast_3198(n);
2571 				i_6 = ((NI) 0);
2572 				{
2573 					while (1) {
2574 						if (!(i_6 < colontmp__3)) goto LA25;
2575 						i_5 = i_6;
2576 						switch ((*(*n)._kind_6.sons->data[i_5]).kind) {
2577 						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 34):
2578 						{
2579 							{
2580 								tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T31_;
2581 								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_2;
2582 								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_2;
2583 								if (!((*(*(*n)._kind_6.sons->data[i_5])._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA29_;
2584 								nimZeroMem((void*)(&T31_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
2585 								exprToStmtList__closureiters_385((*(*n)._kind_6.sons->data[i_5])._kind_6.sons->data[((NI) 1)], (&T31_));
2586 								st_2 = NIM_NIL;
2587 								st_2 = T31_.Field0;
2588 								ex_2 = NIM_NIL;
2589 								ex_2 = T31_.Field1;
2590 								add__ast_4797(result, st_2);
2591 								asgnRef((void**) (&(*(*n)._kind_6.sons->data[i_5])._kind_6.sons->data[((NI) 1)]), ex_2);
2592 							}
2593 							LA29_: ;
2594 						}
2595 						break;
2596 						case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
2597 						{
2598 							tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T33_;
2599 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_3;
2600 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_3;
2601 							nimZeroMem((void*)(&T33_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
2602 							exprToStmtList__closureiters_385((*n)._kind_6.sons->data[i_5], (&T33_));
2603 							st_3 = NIM_NIL;
2604 							st_3 = T33_.Field0;
2605 							ex_3 = NIM_NIL;
2606 							ex_3 = T33_.Field1;
2607 							add__ast_4797(result, st_3);
2608 							asgnRef((void**) (&(*n)._kind_6.sons->data[i_5]), ex_3);
2609 						}
2610 						break;
2611 						default:
2612 						{
2613 						}
2614 						break;
2615 						}
2616 						i_6 += ((NI) 1);
2617 					} LA25: ;
2618 				}
2619 			}
2620 			add__ast_4797(result, n);
2621 		}
2622 		LA17_: ;
2623 	}
2624 	break;
2625 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
2626 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 48):
2627 	{
2628 		NIM_BOOL ns_3;
2629 		ns_3 = NIM_FALSE;
2630 		{
2631 			NI i_7;
2632 			NI colontmp__4;
2633 			NI i_8;
2634 			i_7 = (NI)0;
2635 			colontmp__4 = (NI)0;
2636 			colontmp__4 = len__ast_3198(n);
2637 			i_8 = ((NI) 0);
2638 			{
2639 				while (1) {
2640 					if (!(i_8 < colontmp__4)) goto LA38;
2641 					i_7 = i_8;
2642 					asgnRef((void**) (&(*n)._kind_6.sons->data[i_7]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_7], (&ns_3)));
2643 					i_8 += ((NI) 1);
2644 				} LA38: ;
2645 			}
2646 		}
2647 		{
2648 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* tmp;
2649 			NIM_BOOL isExpr;
2650 			NIM_BOOL T43_;
2651 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* curS;
2652 			if (!ns_3) goto LA41_;
2653 			(*needsSplit) = NIM_TRUE;
2654 			tmp = NIM_NIL;
2655 			T43_ = (NIM_BOOL)0;
2656 			T43_ = isEmptyType__ast_4779((*n).typ);
2657 			isExpr = !(T43_);
2658 			{
2659 				if (!isExpr) goto LA46_;
2660 				tmp = newTempVar__closureiters_167(ctx, (*n).typ);
2661 				result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
2662 				asgnRef((void**) (&(*result).typ), (*n).typ);
2663 			}
2664 			goto LA44_;
2665 			LA46_: ;
2666 			{
2667 				result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
2668 			}
2669 			LA44_: ;
2670 			curS = result;
2671 			{
2672 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
2673 				branch = NIM_NIL;
2674 				{
2675 					NI i_9;
2676 					NI colontmp__5;
2677 					NI i_10;
2678 					i_9 = (NI)0;
2679 					colontmp__5 = (NI)0;
2680 					colontmp__5 = safeLen__ast_3191(n);
2681 					i_10 = ((NI) 0);
2682 					{
2683 						while (1) {
2684 							if (!(i_10 < colontmp__5)) goto LA52;
2685 							i_9 = i_10;
2686 							branch = (*n)._kind_6.sons->data[i_9];
2687 							switch ((*branch).kind) {
2688 							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 50):
2689 							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
2690 							{
2691 								{
2692 									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchBody;
2693 									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newBranch;
2694 									tyArray__jlWPjgtbdjE069arIWHC9c9bg T58_;
2695 									if (!isExpr) goto LA56_;
2696 									branchBody = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*branch).info);
2697 									addExprAssgn__closureiters_446((&(*ctx)), branchBody, (*branch)._kind_6.sons->data[((NI) 0)], tmp);
2698 									nimZeroMem((void*)T58_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
2699 									T58_[0] = branchBody;
2700 									newBranch = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), T58_, 1);
2701 									add__ast_4797(curS, newBranch);
2702 								}
2703 								goto LA54_;
2704 								LA56_: ;
2705 								{
2706 									add__ast_4797(curS, branch);
2707 								}
2708 								LA54_: ;
2709 							}
2710 							break;
2711 							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49):
2712 							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
2713 							{
2714 								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newBranch_2;
2715 								newBranch_2 = NIM_NIL;
2716 								{
2717 									tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T65_;
2718 									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_4;
2719 									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* res;
2720 									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elseBody;
2721 									tyArray__jlWPjgtbdjE069arIWHC9c9bg T66_;
2722 									tyArray__AB6yfoUgfWM2NtGe9bzkCmw T67_;
2723 									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newIf;
2724 									tyArray__jlWPjgtbdjE069arIWHC9c9bg T68_;
2725 									if (!((*(*branch)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA63_;
2726 									nimZeroMem((void*)(&T65_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
2727 									exprToStmtList__closureiters_385((*branch)._kind_6.sons->data[((NI) 0)], (&T65_));
2728 									st_4 = NIM_NIL;
2729 									st_4 = T65_.Field0;
2730 									res = NIM_NIL;
2731 									res = T65_.Field1;
2732 									nimZeroMem((void*)T66_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
2733 									T66_[0] = st_4;
2734 									elseBody = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T66_, 1);
2735 									nimZeroMem((void*)T67_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
2736 									T67_[0] = res;
2737 									T67_[1] = (*branch)._kind_6.sons->data[((NI) 1)];
2738 									newBranch_2 = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T67_, 2);
2739 									nimZeroMem((void*)T68_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
2740 									T68_[0] = newBranch_2;
2741 									newIf = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T68_, 1);
2742 									add__ast_4797(elseBody, newIf);
2743 									{
2744 										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newElse;
2745 										if (!((*curS).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92))) goto LA71_;
2746 										newElse = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (*branch).info);
2747 										add__ast_4797(newElse, elseBody);
2748 										add__ast_4797(curS, newElse);
2749 									}
2750 									goto LA69_;
2751 									LA71_: ;
2752 									{
2753 										add__ast_4797(curS, elseBody);
2754 									}
2755 									LA69_: ;
2756 									curS = newIf;
2757 								}
2758 								goto LA61_;
2759 								LA63_: ;
2760 								{
2761 									newBranch_2 = branch;
2762 									{
2763 										if (!((*curS).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92))) goto LA77_;
2764 										add__ast_4797(curS, newBranch_2);
2765 									}
2766 									goto LA75_;
2767 									LA77_: ;
2768 									{
2769 										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newIf_2;
2770 										tyArray__jlWPjgtbdjE069arIWHC9c9bg T80_;
2771 										nimZeroMem((void*)T80_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
2772 										T80_[0] = newBranch_2;
2773 										newIf_2 = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T80_, 1);
2774 										add__ast_4797(curS, newIf_2);
2775 										curS = newIf_2;
2776 									}
2777 									LA75_: ;
2778 								}
2779 								LA61_: ;
2780 								{
2781 									tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchBody_2;
2782 									if (!isExpr) goto LA83_;
2783 									branchBody_2 = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*branch)._kind_6.sons->data[((NI) 1)]).info);
2784 									addExprAssgn__closureiters_446((&(*ctx)), branchBody_2, (*branch)._kind_6.sons->data[((NI) 1)], tmp);
2785 									asgnRef((void**) (&(*newBranch_2)._kind_6.sons->data[((NI) 1)]), branchBody_2);
2786 								}
2787 								LA83_: ;
2788 							}
2789 							break;
2790 							default:
2791 							{
2792 								NimStringDesc* T86_;
2793 								T86_ = NIM_NIL;
2794 								T86_ = rawNewString((reprEnum((NI)(*branch).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*branch).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 25);
2795 appendString(T86_, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_11));
2796 appendString(T86_, reprEnum((NI)(*branch).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_)));
2797 								internalErrorImpl__msgs_1431((*(*ctx).g).config, unknownLineInfo__lineinfos_280, T86_, TM__slVvvIjx75ivXdMpHiE9c9aQ_12);
2798 							}
2799 							break;
2800 							}
2801 							i_10 += ((NI) 1);
2802 						} LA52: ;
2803 					}
2804 				}
2805 			}
2806 			{
2807 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T91_;
2808 				if (!isExpr) goto LA89_;
2809 				T91_ = NIM_NIL;
2810 				T91_ = newEnvVarAccess__closureiters_70((&(*ctx)), tmp);
2811 				add__ast_4797(result, T91_);
2812 			}
2813 			LA89_: ;
2814 		}
2815 		LA41_: ;
2816 	}
2817 	break;
2818 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
2819 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
2820 	{
2821 		NIM_BOOL ns_4;
2822 		ns_4 = NIM_FALSE;
2823 		{
2824 			NI i_11;
2825 			NI colontmp__6;
2826 			NI i_12;
2827 			i_11 = (NI)0;
2828 			colontmp__6 = (NI)0;
2829 			colontmp__6 = len__ast_3198(n);
2830 			i_12 = ((NI) 0);
2831 			{
2832 				while (1) {
2833 					if (!(i_12 < colontmp__6)) goto LA95;
2834 					i_11 = i_12;
2835 					asgnRef((void**) (&(*n)._kind_6.sons->data[i_11]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_11], (&ns_4)));
2836 					i_12 += ((NI) 1);
2837 				} LA95: ;
2838 			}
2839 		}
2840 		{
2841 			NIM_BOOL isExpr_2;
2842 			NIM_BOOL T100_;
2843 			if (!ns_4) goto LA98_;
2844 			(*needsSplit) = NIM_TRUE;
2845 			T100_ = (NIM_BOOL)0;
2846 			T100_ = isEmptyType__ast_4779((*n).typ);
2847 			isExpr_2 = !(T100_);
2848 			{
2849 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* tmp_2;
2850 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T117_;
2851 				if (!isExpr_2) goto LA103_;
2852 				result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
2853 				asgnRef((void**) (&(*result).typ), (*n).typ);
2854 				tmp_2 = newTempVar__closureiters_167(ctx, (*n).typ);
2855 				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), convertExprBodyToAsgn__closureiters_469((&(*ctx)), (*n)._kind_6.sons->data[((NI) 0)], tmp_2));
2856 				{
2857 					NI i_13;
2858 					NI colontmp__7;
2859 					NI i_14;
2860 					i_13 = (NI)0;
2861 					colontmp__7 = (NI)0;
2862 					colontmp__7 = len__ast_3198(n);
2863 					i_14 = ((NI) 1);
2864 					{
2865 						while (1) {
2866 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch_2;
2867 							if (!(i_14 < colontmp__7)) goto LA107;
2868 							i_13 = i_14;
2869 							branch_2 = (*n)._kind_6.sons->data[i_13];
2870 							switch ((*branch_2).kind) {
2871 							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87):
2872 							{
2873 								{
2874 									if (!((*(*branch_2)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4))) goto LA111_;
2875 									asgnRef((void**) (&(*branch_2)._kind_6.sons->data[((NI) 1)]), convertExprBodyToAsgn__closureiters_469((&(*ctx)), (*branch_2)._kind_6.sons->data[((NI) 1)], tmp_2));
2876 								}
2877 								goto LA109_;
2878 								LA111_: ;
2879 								{
2880 									asgnRef((void**) (&(*branch_2)._kind_6.sons->data[((NI) 0)]), convertExprBodyToAsgn__closureiters_469((&(*ctx)), (*branch_2)._kind_6.sons->data[((NI) 0)], tmp_2));
2881 								}
2882 								LA109_: ;
2883 							}
2884 							break;
2885 							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107):
2886 							{
2887 							}
2888 							break;
2889 							default:
2890 							{
2891 								NimStringDesc* T116_;
2892 								T116_ = NIM_NIL;
2893 								T116_ = rawNewString((reprEnum((NI)(*branch_2).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*branch_2).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 30);
2894 appendString(T116_, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_13));
2895 appendString(T116_, reprEnum((NI)(*branch_2).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_)));
2896 								internalErrorImpl__msgs_1431((*(*ctx).g).config, unknownLineInfo__lineinfos_280, T116_, TM__slVvvIjx75ivXdMpHiE9c9aQ_14);
2897 							}
2898 							break;
2899 							}
2900 							i_14 += ((NI) 1);
2901 						} LA107: ;
2902 					}
2903 				}
2904 				add__ast_4797(result, n);
2905 				T117_ = NIM_NIL;
2906 				T117_ = newEnvVarAccess__closureiters_70((&(*ctx)), tmp_2);
2907 				add__ast_4797(result, T117_);
2908 			}
2909 			LA103_: ;
2910 		}
2911 		LA98_: ;
2912 	}
2913 	break;
2914 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
2915 	{
2916 		NIM_BOOL ns_5;
2917 		ns_5 = NIM_FALSE;
2918 		{
2919 			NI i_15;
2920 			NI colontmp__8;
2921 			NI i_16;
2922 			i_15 = (NI)0;
2923 			colontmp__8 = (NI)0;
2924 			colontmp__8 = len__ast_3198(n);
2925 			i_16 = ((NI) 0);
2926 			{
2927 				while (1) {
2928 					if (!(i_16 < colontmp__8)) goto LA121;
2929 					i_15 = i_16;
2930 					asgnRef((void**) (&(*n)._kind_6.sons->data[i_15]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_15], (&ns_5)));
2931 					i_16 += ((NI) 1);
2932 				} LA121: ;
2933 			}
2934 		}
2935 		{
2936 			NIM_BOOL isExpr_3;
2937 			NIM_BOOL T126_;
2938 			if (!ns_5) goto LA124_;
2939 			(*needsSplit) = NIM_TRUE;
2940 			T126_ = (NIM_BOOL)0;
2941 			T126_ = isEmptyType__ast_4779((*n).typ);
2942 			isExpr_3 = !(T126_);
2943 			{
2944 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* tmp_3;
2945 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T145_;
2946 				if (!isExpr_3) goto LA129_;
2947 				tmp_3 = newTempVar__closureiters_167(ctx, (*n).typ);
2948 				result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
2949 				asgnRef((void**) (&(*result).typ), (*n).typ);
2950 				{
2951 					tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T135_;
2952 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_5;
2953 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_4;
2954 					if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA133_;
2955 					nimZeroMem((void*)(&T135_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
2956 					exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T135_));
2957 					st_5 = NIM_NIL;
2958 					st_5 = T135_.Field0;
2959 					ex_4 = NIM_NIL;
2960 					ex_4 = T135_.Field1;
2961 					add__ast_4797(result, st_5);
2962 					asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex_4);
2963 				}
2964 				LA133_: ;
2965 				{
2966 					NI i_17;
2967 					NI colontmp__9;
2968 					NI i_18;
2969 					i_17 = (NI)0;
2970 					colontmp__9 = (NI)0;
2971 					colontmp__9 = len__ast_3198(n);
2972 					i_18 = ((NI) 1);
2973 					{
2974 						while (1) {
2975 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch_3;
2976 							if (!(i_18 < colontmp__9)) goto LA138;
2977 							i_17 = i_18;
2978 							branch_3 = (*n)._kind_6.sons->data[i_17];
2979 							switch ((*branch_3).kind) {
2980 							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
2981 							{
2982 								NI T140_;
2983 								NI T141_;
2984 								T140_ = (NI)0;
2985 								T140_ = len__ast_3198(branch_3);
2986 								T141_ = (NI)0;
2987 								T141_ = len__ast_3198(branch_3);
2988 								asgnRef((void**) (&(*branch_3)._kind_6.sons->data[(NI)(T140_ - ((NI) 1))]), convertExprBodyToAsgn__closureiters_469((&(*ctx)), (*branch_3)._kind_6.sons->data[(NI)(T141_ - ((NI) 1))], tmp_3));
2989 							}
2990 							break;
2991 							case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
2992 							{
2993 								asgnRef((void**) (&(*branch_3)._kind_6.sons->data[((NI) 0)]), convertExprBodyToAsgn__closureiters_469((&(*ctx)), (*branch_3)._kind_6.sons->data[((NI) 0)], tmp_3));
2994 							}
2995 							break;
2996 							default:
2997 							{
2998 								NimStringDesc* T144_;
2999 								T144_ = NIM_NIL;
3000 								T144_ = rawNewString((reprEnum((NI)(*branch_3).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*branch_3).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 31);
3001 appendString(T144_, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_15));
3002 appendString(T144_, reprEnum((NI)(*branch_3).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_)));
3003 								internalErrorImpl__msgs_1431((*(*ctx).g).config, unknownLineInfo__lineinfos_280, T144_, TM__slVvvIjx75ivXdMpHiE9c9aQ_16);
3004 							}
3005 							break;
3006 							}
3007 							i_18 += ((NI) 1);
3008 						} LA138: ;
3009 					}
3010 				}
3011 				add__ast_4797(result, n);
3012 				T145_ = NIM_NIL;
3013 				T145_ = newEnvVarAccess__closureiters_70((&(*ctx)), tmp_3);
3014 				add__ast_4797(result, T145_);
3015 			}
3016 			goto LA127_;
3017 			LA129_: ;
3018 			{
3019 				tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T149_;
3020 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_6;
3021 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_5;
3022 				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA147_;
3023 				result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
3024 				nimZeroMem((void*)(&T149_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3025 				exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T149_));
3026 				st_6 = NIM_NIL;
3027 				st_6 = T149_.Field0;
3028 				ex_5 = NIM_NIL;
3029 				ex_5 = T149_.Field1;
3030 				add__ast_4797(result, st_6);
3031 				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex_5);
3032 				add__ast_4797(result, n);
3033 			}
3034 			goto LA127_;
3035 			LA147_: ;
3036 			LA127_: ;
3037 		}
3038 		LA124_: ;
3039 	}
3040 	break;
3041 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32):
3042 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 70):
3043 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 68):
3044 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 69):
3045 	{
3046 		NIM_BOOL ns_6;
3047 		ns_6 = NIM_FALSE;
3048 		{
3049 			NI i_19;
3050 			NI colontmp__10;
3051 			NI i_20;
3052 			i_19 = (NI)0;
3053 			colontmp__10 = (NI)0;
3054 			colontmp__10 = len__ast_3198(n);
3055 			i_20 = ((NI) 0);
3056 			{
3057 				while (1) {
3058 					if (!(i_20 < colontmp__10)) goto LA153;
3059 					i_19 = i_20;
3060 					asgnRef((void**) (&(*n)._kind_6.sons->data[i_19]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_19], (&ns_6)));
3061 					i_20 += ((NI) 1);
3062 				} LA153: ;
3063 			}
3064 		}
3065 		{
3066 			NIM_BOOL isExpr_4;
3067 			NIM_BOOL T158_;
3068 			if (!ns_6) goto LA156_;
3069 			(*needsSplit) = NIM_TRUE;
3070 			T158_ = (NIM_BOOL)0;
3071 			T158_ = isEmptyType__ast_4779((*n).typ);
3072 			isExpr_4 = !(T158_);
3073 			{
3074 				if (!isExpr_4) goto LA161_;
3075 				result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
3076 				asgnRef((void**) (&(*result).typ), (*n).typ);
3077 			}
3078 			goto LA159_;
3079 			LA161_: ;
3080 			{
3081 				result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
3082 			}
3083 			LA159_: ;
3084 			{
3085 				NIM_BOOL T166_;
3086 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond;
3087 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* tmp_4;
3088 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T175_;
3089 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check;
3090 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifBody;
3091 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T185_;
3092 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifBranch;
3093 				tyArray__AB6yfoUgfWM2NtGe9bzkCmw T186_;
3094 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifNode;
3095 				tyArray__jlWPjgtbdjE069arIWHC9c9bg T187_;
3096 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T188_;
3097 				T166_ = (NIM_BOOL)0;
3098 				T166_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
3099 				if (!(T166_)) goto LA167_;
3100 				T166_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 109) || (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110));
3101 				LA167_: ;
3102 				if (!T166_) goto LA168_;
3103 				cond = (*n)._kind_6.sons->data[((NI) 1)];
3104 				{
3105 					tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T174_;
3106 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_7;
3107 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_6;
3108 					if (!((*cond).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA172_;
3109 					nimZeroMem((void*)(&T174_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3110 					exprToStmtList__closureiters_385(cond, (&T174_));
3111 					st_7 = NIM_NIL;
3112 					st_7 = T174_.Field0;
3113 					ex_6 = NIM_NIL;
3114 					ex_6 = T174_.Field1;
3115 					add__ast_4797(result, st_7);
3116 					cond = ex_6;
3117 				}
3118 				LA172_: ;
3119 				tmp_4 = newTempVar__closureiters_167(ctx, (*cond).typ);
3120 				T175_ = NIM_NIL;
3121 				T175_ = newEnvVarAsgn__closureiters_441((&(*ctx)), tmp_4, cond);
3122 				add__ast_4797(result, T175_);
3123 				check = newEnvVarAccess__closureiters_70((&(*ctx)), tmp_4);
3124 				{
3125 					if (!((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110))) goto LA178_;
3126 					check = newNotCall__closureiters_474((*ctx).g, check);
3127 				}
3128 				LA178_: ;
3129 				cond = (*n)._kind_6.sons->data[((NI) 2)];
3130 				ifBody = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*cond).info);
3131 				{
3132 					tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T184_;
3133 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_8;
3134 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_7;
3135 					if (!((*cond).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA182_;
3136 					nimZeroMem((void*)(&T184_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3137 					exprToStmtList__closureiters_385(cond, (&T184_));
3138 					st_8 = NIM_NIL;
3139 					st_8 = T184_.Field0;
3140 					ex_7 = NIM_NIL;
3141 					ex_7 = T184_.Field1;
3142 					add__ast_4797(ifBody, st_8);
3143 					cond = ex_7;
3144 				}
3145 				LA182_: ;
3146 				T185_ = NIM_NIL;
3147 				T185_ = newEnvVarAsgn__closureiters_441((&(*ctx)), tmp_4, cond);
3148 				add__ast_4797(ifBody, T185_);
3149 				nimZeroMem((void*)T186_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
3150 				T186_[0] = check;
3151 				T186_[1] = ifBody;
3152 				ifBranch = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T186_, 2);
3153 				nimZeroMem((void*)T187_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
3154 				T187_[0] = ifBranch;
3155 				ifNode = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T187_, 1);
3156 				add__ast_4797(result, ifNode);
3157 				T188_ = NIM_NIL;
3158 				T188_ = newEnvVarAccess__closureiters_70((&(*ctx)), tmp_4);
3159 				add__ast_4797(result, T188_);
3160 			}
3161 			goto LA164_;
3162 			LA168_: ;
3163 			{
3164 				{
3165 					NI i_21;
3166 					NI colontmp__11;
3167 					NI i_22;
3168 					i_21 = (NI)0;
3169 					colontmp__11 = (NI)0;
3170 					colontmp__11 = len__ast_3198(n);
3171 					i_22 = ((NI) 0);
3172 					{
3173 						while (1) {
3174 							if (!(i_22 < colontmp__11)) goto LA192;
3175 							i_21 = i_22;
3176 							{
3177 								tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T197_;
3178 								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_9;
3179 								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_8;
3180 								if (!((*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA195_;
3181 								nimZeroMem((void*)(&T197_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3182 								exprToStmtList__closureiters_385((*n)._kind_6.sons->data[i_21], (&T197_));
3183 								st_9 = NIM_NIL;
3184 								st_9 = T197_.Field0;
3185 								ex_8 = NIM_NIL;
3186 								ex_8 = T197_.Field1;
3187 								add__ast_4797(result, st_9);
3188 								asgnRef((void**) (&(*n)._kind_6.sons->data[i_21]), ex_8);
3189 							}
3190 							LA195_: ;
3191 							{
3192 								tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* tmp_5;
3193 								tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T202_;
3194 								if (!((*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*(*n)._kind_6.sons->data[i_21]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA200_;
3195 								tmp_5 = newTempVar__closureiters_167(ctx, (*(*n)._kind_6.sons->data[i_21]).typ);
3196 								T202_ = NIM_NIL;
3197 								T202_ = newEnvVarAsgn__closureiters_441((&(*ctx)), tmp_5, (*n)._kind_6.sons->data[i_21]);
3198 								add__ast_4797(result, T202_);
3199 								asgnRef((void**) (&(*n)._kind_6.sons->data[i_21]), newEnvVarAccess__closureiters_70((&(*ctx)), tmp_5));
3200 							}
3201 							LA200_: ;
3202 							i_22 += ((NI) 1);
3203 						} LA192: ;
3204 					}
3205 				}
3206 				add__ast_4797(result, n);
3207 			}
3208 			LA164_: ;
3209 		}
3210 		LA156_: ;
3211 	}
3212 	break;
3213 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99):
3214 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 100):
3215 	{
3216 		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
3217 		{
3218 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c;
3219 			c = NIM_NIL;
3220 			{
3221 				NI i_23;
3222 				NI colontmp__12;
3223 				NI i_24;
3224 				i_23 = (NI)0;
3225 				colontmp__12 = (NI)0;
3226 				colontmp__12 = safeLen__ast_3191(n);
3227 				i_24 = ((NI) 0);
3228 				{
3229 					while (1) {
3230 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSect;
3231 						NIM_BOOL ns_7;
3232 						NI T208_;
3233 						NI T209_;
3234 						if (!(i_24 < colontmp__12)) goto LA207;
3235 						i_23 = i_24;
3236 						c = (*n)._kind_6.sons->data[i_23];
3237 						varSect = newNodeI__ast_3356((*n).kind, (*n).info);
3238 						add__ast_4797(varSect, c);
3239 						ns_7 = NIM_FALSE;
3240 						T208_ = (NI)0;
3241 						T208_ = len__ast_3198(c);
3242 						T209_ = (NI)0;
3243 						T209_ = len__ast_3198(c);
3244 						asgnRef((void**) (&(*c)._kind_6.sons->data[(NI)(T208_ - ((NI) 1))]), lowerStmtListExprs__closureiters_478(ctx, (*c)._kind_6.sons->data[(NI)(T209_ - ((NI) 1))], (&ns_7)));
3245 						{
3246 							NI T214_;
3247 							tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T215_;
3248 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_10;
3249 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_9;
3250 							NI T216_;
3251 							if (!ns_7) goto LA212_;
3252 							(*needsSplit) = NIM_TRUE;
3253 							T214_ = (NI)0;
3254 							T214_ = len__ast_3198(c);
3255 							nimZeroMem((void*)(&T215_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3256 							exprToStmtList__closureiters_385((*c)._kind_6.sons->data[(NI)(T214_ - ((NI) 1))], (&T215_));
3257 							st_10 = NIM_NIL;
3258 							st_10 = T215_.Field0;
3259 							ex_9 = NIM_NIL;
3260 							ex_9 = T215_.Field1;
3261 							add__ast_4797(result, st_10);
3262 							T216_ = (NI)0;
3263 							T216_ = len__ast_3198(c);
3264 							asgnRef((void**) (&(*c)._kind_6.sons->data[(NI)(T216_ - ((NI) 1))]), ex_9);
3265 						}
3266 						LA212_: ;
3267 						add__ast_4797(result, varSect);
3268 						i_24 += ((NI) 1);
3269 					} LA207: ;
3270 				}
3271 			}
3272 		}
3273 	}
3274 	break;
3275 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 114):
3276 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
3277 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108):
3278 	{
3279 		NIM_BOOL ns_8;
3280 		ns_8 = NIM_FALSE;
3281 		{
3282 			NI i_25;
3283 			NI colontmp__13;
3284 			NI i_26;
3285 			i_25 = (NI)0;
3286 			colontmp__13 = (NI)0;
3287 			colontmp__13 = len__ast_3198(n);
3288 			i_26 = ((NI) 0);
3289 			{
3290 				while (1) {
3291 					if (!(i_26 < colontmp__13)) goto LA220;
3292 					i_25 = i_26;
3293 					asgnRef((void**) (&(*n)._kind_6.sons->data[i_25]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_25], (&ns_8)));
3294 					i_26 += ((NI) 1);
3295 				} LA220: ;
3296 			}
3297 		}
3298 		{
3299 			tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T225_;
3300 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_11;
3301 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_10;
3302 			if (!ns_8) goto LA223_;
3303 			(*needsSplit) = NIM_TRUE;
3304 			result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
3305 			nimZeroMem((void*)(&T225_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3306 			exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T225_));
3307 			st_11 = NIM_NIL;
3308 			st_11 = T225_.Field0;
3309 			ex_10 = NIM_NIL;
3310 			ex_10 = T225_.Field1;
3311 			add__ast_4797(result, st_11);
3312 			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex_10);
3313 			add__ast_4797(result, n);
3314 		}
3315 		LA223_: ;
3316 	}
3317 	break;
3318 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
3319 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 58):
3320 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 59):
3321 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 60):
3322 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 66):
3323 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47):
3324 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65):
3325 	{
3326 		NIM_BOOL ns_9;
3327 		ns_9 = NIM_FALSE;
3328 		{
3329 			NI i_27;
3330 			NI colontmp__14;
3331 			NI colontmp__15;
3332 			NI i_28;
3333 			i_27 = (NI)0;
3334 			colontmp__14 = (NI)0;
3335 			colontmp__15 = (NI)0;
3336 			colontmp__14 = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61));
3337 			colontmp__15 = len__ast_3198(n);
3338 			i_28 = colontmp__14;
3339 			{
3340 				while (1) {
3341 					if (!(i_28 < colontmp__15)) goto LA229;
3342 					i_27 = i_28;
3343 					asgnRef((void**) (&(*n)._kind_6.sons->data[i_27]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_27], (&ns_9)));
3344 					i_28 += ((NI) 1);
3345 				} LA229: ;
3346 			}
3347 		}
3348 		{
3349 			NI T234_;
3350 			tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T235_;
3351 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_12;
3352 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_11;
3353 			NI T236_;
3354 			if (!ns_9) goto LA232_;
3355 			(*needsSplit) = NIM_TRUE;
3356 			result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
3357 			asgnRef((void**) (&(*result).typ), (*n).typ);
3358 			T234_ = (NI)0;
3359 			T234_ = len__ast_3198(n);
3360 			nimZeroMem((void*)(&T235_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3361 			exprToStmtList__closureiters_385((*n)._kind_6.sons->data[(NI)(T234_ - ((NI) 1))], (&T235_));
3362 			st_12 = NIM_NIL;
3363 			st_12 = T235_.Field0;
3364 			ex_11 = NIM_NIL;
3365 			ex_11 = T235_.Field1;
3366 			add__ast_4797(result, st_12);
3367 			T236_ = (NI)0;
3368 			T236_ = len__ast_3198(n);
3369 			asgnRef((void**) (&(*n)._kind_6.sons->data[(NI)(T236_ - ((NI) 1))]), ex_11);
3370 			add__ast_4797(result, n);
3371 		}
3372 		LA232_: ;
3373 	}
3374 	break;
3375 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73):
3376 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74):
3377 	{
3378 		NIM_BOOL ns_10;
3379 		ns_10 = NIM_FALSE;
3380 		{
3381 			NI i_29;
3382 			NI colontmp__16;
3383 			NI i_30;
3384 			i_29 = (NI)0;
3385 			colontmp__16 = (NI)0;
3386 			colontmp__16 = len__ast_3198(n);
3387 			i_30 = ((NI) 0);
3388 			{
3389 				while (1) {
3390 					if (!(i_30 < colontmp__16)) goto LA240;
3391 					i_29 = i_30;
3392 					asgnRef((void**) (&(*n)._kind_6.sons->data[i_29]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_29], (&ns_10)));
3393 					i_30 += ((NI) 1);
3394 				} LA240: ;
3395 			}
3396 		}
3397 		{
3398 			if (!ns_10) goto LA243_;
3399 			(*needsSplit) = NIM_TRUE;
3400 			result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
3401 			{
3402 				tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T249_;
3403 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_13;
3404 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_12;
3405 				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA247_;
3406 				nimZeroMem((void*)(&T249_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3407 				exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T249_));
3408 				st_13 = NIM_NIL;
3409 				st_13 = T249_.Field0;
3410 				ex_12 = NIM_NIL;
3411 				ex_12 = T249_.Field1;
3412 				add__ast_4797(result, st_13);
3413 				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex_12);
3414 			}
3415 			LA247_: ;
3416 			{
3417 				tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T254_;
3418 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_14;
3419 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_13;
3420 				if (!((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126))) goto LA252_;
3421 				nimZeroMem((void*)(&T254_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3422 				exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 1)], (&T254_));
3423 				st_14 = NIM_NIL;
3424 				st_14 = T254_.Field0;
3425 				ex_13 = NIM_NIL;
3426 				ex_13 = T254_.Field1;
3427 				add__ast_4797(result, st_14);
3428 				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), ex_13);
3429 			}
3430 			LA252_: ;
3431 			add__ast_4797(result, n);
3432 		}
3433 		LA243_: ;
3434 	}
3435 	break;
3436 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42):
3437 	{
3438 		NIM_BOOL lhsNeedsSplit;
3439 		NIM_BOOL rhsNeedsSplit;
3440 		lhsNeedsSplit = NIM_FALSE;
3441 		rhsNeedsSplit = NIM_FALSE;
3442 		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[((NI) 0)], (&lhsNeedsSplit)));
3443 		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[((NI) 1)], (&rhsNeedsSplit)));
3444 		{
3445 			NIM_BOOL T258_;
3446 			T258_ = (NIM_BOOL)0;
3447 			T258_ = lhsNeedsSplit;
3448 			if (T258_) goto LA259_;
3449 			T258_ = rhsNeedsSplit;
3450 			LA259_: ;
3451 			if (!T258_) goto LA260_;
3452 			(*needsSplit) = NIM_TRUE;
3453 			result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
3454 			{
3455 				tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T266_;
3456 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_15;
3457 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_14;
3458 				if (!lhsNeedsSplit) goto LA264_;
3459 				nimZeroMem((void*)(&T266_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3460 				exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T266_));
3461 				st_15 = NIM_NIL;
3462 				st_15 = T266_.Field0;
3463 				ex_14 = NIM_NIL;
3464 				ex_14 = T266_.Field1;
3465 				add__ast_4797(result, st_15);
3466 				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex_14);
3467 			}
3468 			LA264_: ;
3469 			{
3470 				tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T271_;
3471 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_16;
3472 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_15;
3473 				if (!rhsNeedsSplit) goto LA269_;
3474 				nimZeroMem((void*)(&T271_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3475 				exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 1)], (&T271_));
3476 				st_16 = NIM_NIL;
3477 				st_16 = T271_.Field0;
3478 				ex_15 = NIM_NIL;
3479 				ex_15 = T271_.Field1;
3480 				add__ast_4797(result, st_16);
3481 				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), ex_15);
3482 			}
3483 			LA269_: ;
3484 			add__ast_4797(result, n);
3485 		}
3486 		LA260_: ;
3487 	}
3488 	break;
3489 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
3490 	{
3491 		NIM_BOOL condNeedsSplit;
3492 		NIM_BOOL bodyNeedsSplit;
3493 		condNeedsSplit = NIM_FALSE;
3494 		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[((NI) 0)], (&condNeedsSplit)));
3495 		bodyNeedsSplit = NIM_FALSE;
3496 		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[((NI) 1)], (&bodyNeedsSplit)));
3497 		{
3498 			NIM_BOOL T275_;
3499 			T275_ = (NIM_BOOL)0;
3500 			T275_ = condNeedsSplit;
3501 			if (T275_) goto LA276_;
3502 			T275_ = bodyNeedsSplit;
3503 			LA276_: ;
3504 			if (!T275_) goto LA277_;
3505 			(*needsSplit) = NIM_TRUE;
3506 			{
3507 				tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T283_;
3508 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_17;
3509 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_16;
3510 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* brk;
3511 				tyArray__jlWPjgtbdjE069arIWHC9c9bg T284_;
3512 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch_4;
3513 				tyArray__AB6yfoUgfWM2NtGe9bzkCmw T285_;
3514 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* check_2;
3515 				tyArray__jlWPjgtbdjE069arIWHC9c9bg T286_;
3516 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* newBody;
3517 				tyArray__T6RKPw8xfAeNaoei9aZGzXg T287_;
3518 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T288_;
3519 				if (!condNeedsSplit) goto LA281_;
3520 				nimZeroMem((void*)(&T283_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3521 				exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T283_));
3522 				st_17 = NIM_NIL;
3523 				st_17 = T283_.Field0;
3524 				ex_16 = NIM_NIL;
3525 				ex_16 = T283_.Field1;
3526 				nimZeroMem((void*)T284_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
3527 				T284_[0] = (*(*ctx).g).emptyNode;
3528 				brk = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110), T284_, 1);
3529 				nimZeroMem((void*)T285_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
3530 				T285_[0] = newNotCall__closureiters_474((*ctx).g, ex_16);
3531 				T285_[1] = brk;
3532 				branch_4 = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T285_, 2);
3533 				nimZeroMem((void*)T286_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
3534 				T286_[0] = branch_4;
3535 				check_2 = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T286_, 1);
3536 				nimZeroMem((void*)T287_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
3537 				T287_[0] = st_17;
3538 				T287_[1] = check_2;
3539 				T287_[2] = (*n)._kind_6.sons->data[((NI) 1)];
3540 				newBody = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T287_, 3);
3541 				T288_ = NIM_NIL;
3542 				T288_ = getSysSym__magicsys_16((*ctx).g, (*(*n)._kind_6.sons->data[((NI) 0)]).info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_18));
3543 				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(T288_));
3544 				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), newBody);
3545 			}
3546 			LA281_: ;
3547 		}
3548 		LA277_: ;
3549 	}
3550 	break;
3551 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45):
3552 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 46):
3553 	{
3554 		NIM_BOOL ns_11;
3555 		ns_11 = NIM_FALSE;
3556 		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[((NI) 0)], (&ns_11)));
3557 		{
3558 			tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T294_;
3559 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_18;
3560 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_17;
3561 			if (!ns_11) goto LA292_;
3562 			(*needsSplit) = NIM_TRUE;
3563 			result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
3564 			asgnRef((void**) (&(*result).typ), (*n).typ);
3565 			nimZeroMem((void*)(&T294_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3566 			exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 0)], (&T294_));
3567 			st_18 = NIM_NIL;
3568 			st_18 = T294_.Field0;
3569 			ex_17 = NIM_NIL;
3570 			ex_17 = T294_.Field1;
3571 			add__ast_4797(result, st_18);
3572 			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), ex_17);
3573 			add__ast_4797(result, n);
3574 		}
3575 		LA292_: ;
3576 	}
3577 	break;
3578 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 127):
3579 	{
3580 		NIM_BOOL ns_12;
3581 		ns_12 = NIM_FALSE;
3582 		asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[((NI) 1)], (&ns_12)));
3583 		{
3584 			tyTuple__EFqgCXJ4d8PgqOdFJmldsQ T300_;
3585 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* st_19;
3586 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ex_18;
3587 			if (!ns_12) goto LA298_;
3588 			(*needsSplit) = NIM_TRUE;
3589 			result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126), (*n).info);
3590 			asgnRef((void**) (&(*result).typ), (*n).typ);
3591 			nimZeroMem((void*)(&T300_), sizeof(tyTuple__EFqgCXJ4d8PgqOdFJmldsQ));
3592 			exprToStmtList__closureiters_385((*n)._kind_6.sons->data[((NI) 1)], (&T300_));
3593 			st_19 = NIM_NIL;
3594 			st_19 = T300_.Field0;
3595 			ex_18 = NIM_NIL;
3596 			ex_18 = T300_.Field1;
3597 			transitionSonsKind__ast_4359(n, ((tyEnum_TNodeKind__Dq0DNfMwTBUf7hLFKKDU7g) 112));
3598 			asgnRef((void**) (&(*n).typ), ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
3599 			asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 1)]), st_19);
3600 			add__ast_4797(result, n);
3601 			add__ast_4797(result, ex_18);
3602 		}
3603 		LA298_: ;
3604 	}
3605 	break;
3606 	default:
3607 	{
3608 		{
3609 			NI i_31;
3610 			NI colontmp__17;
3611 			NI i_32;
3612 			i_31 = (NI)0;
3613 			colontmp__17 = (NI)0;
3614 			colontmp__17 = len__ast_3198(n);
3615 			i_32 = ((NI) 0);
3616 			{
3617 				while (1) {
3618 					if (!(i_32 < colontmp__17)) goto LA304;
3619 					i_31 = i_32;
3620 					asgnRef((void**) (&(*n)._kind_6.sons->data[i_31]), lowerStmtListExprs__closureiters_478(ctx, (*n)._kind_6.sons->data[i_31], needsSplit));
3621 					i_32 += ((NI) 1);
3622 				} LA304: ;
3623 			}
3624 		}
3625 	}
3626 	break;
3627 	}
3628 	return result;
3629 }
N_NIMCALL(NIM_BOOL,hasYields__closureiters_175)3630 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasYields__closureiters_175)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
3631 	NIM_BOOL result;
3632 	result = (NIM_BOOL)0;
3633 	switch ((*n).kind) {
3634 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 104):
3635 	{
3636 		result = NIM_TRUE;
3637 	}
3638 	break;
3639 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
3640 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
3641 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
3642 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
3643 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
3644 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
3645 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
3646 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
3647 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
3648 	{
3649 	}
3650 	break;
3651 	default:
3652 	{
3653 		{
3654 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c;
3655 			c = NIM_NIL;
3656 			{
3657 				NI i;
3658 				NI colontmp_;
3659 				NI i_2;
3660 				i = (NI)0;
3661 				colontmp_ = (NI)0;
3662 				colontmp_ = safeLen__ast_3191(n);
3663 				i_2 = ((NI) 0);
3664 				{
3665 					while (1) {
3666 						if (!(i_2 < colontmp_)) goto LA7;
3667 						i = i_2;
3668 						c = (*n)._kind_6.sons->data[i];
3669 						{
3670 							NIM_BOOL T10_;
3671 							T10_ = (NIM_BOOL)0;
3672 							T10_ = hasYields__closureiters_175(c);
3673 							if (!T10_) goto LA11_;
3674 							result = NIM_TRUE;
3675 							goto LA4;
3676 						}
3677 						LA11_: ;
3678 						i_2 += ((NI) 1);
3679 					} LA7: ;
3680 				}
3681 			}
3682 		} LA4: ;
3683 	}
3684 	break;
3685 	}
3686 	return result;
3687 }
N_NIMCALL(NIM_BOOL,hasYieldsInExpressions__closureiters_371)3688 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, hasYieldsInExpressions__closureiters_371)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
3689 	NIM_BOOL result;
3690 {	result = (NIM_BOOL)0;
3691 	switch ((*n).kind) {
3692 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
3693 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
3694 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
3695 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
3696 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
3697 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
3698 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
3699 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
3700 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
3701 	{
3702 	}
3703 	break;
3704 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
3705 	{
3706 		{
3707 			NIM_BOOL T5_;
3708 			T5_ = (NIM_BOOL)0;
3709 			T5_ = isEmptyType__ast_4779((*n).typ);
3710 			if (!T5_) goto LA6_;
3711 			{
3712 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c;
3713 				c = NIM_NIL;
3714 				{
3715 					NI i;
3716 					NI colontmp_;
3717 					NI i_2;
3718 					i = (NI)0;
3719 					colontmp_ = (NI)0;
3720 					colontmp_ = safeLen__ast_3191(n);
3721 					i_2 = ((NI) 0);
3722 					{
3723 						while (1) {
3724 							if (!(i_2 < colontmp_)) goto LA11;
3725 							i = i_2;
3726 							c = (*n)._kind_6.sons->data[i];
3727 							{
3728 								NIM_BOOL T14_;
3729 								T14_ = (NIM_BOOL)0;
3730 								T14_ = hasYieldsInExpressions__closureiters_371(c);
3731 								if (!T14_) goto LA15_;
3732 								result = NIM_TRUE;
3733 								goto BeforeRet_;
3734 							}
3735 							LA15_: ;
3736 							i_2 += ((NI) 1);
3737 						} LA11: ;
3738 					}
3739 				}
3740 			}
3741 		}
3742 		goto LA3_;
3743 		LA6_: ;
3744 		{
3745 			result = hasYields__closureiters_175(n);
3746 		}
3747 		LA3_: ;
3748 	}
3749 	break;
3750 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61):
3751 	{
3752 		{
3753 			NI i_3;
3754 			NI colontmp__2;
3755 			NI i_4;
3756 			i_3 = (NI)0;
3757 			colontmp__2 = (NI)0;
3758 			colontmp__2 = len__ast_3198(n);
3759 			i_4 = ((NI) 1);
3760 			{
3761 				while (1) {
3762 					if (!(i_4 < colontmp__2)) goto LA21;
3763 					i_3 = i_4;
3764 					{
3765 						NIM_BOOL T24_;
3766 						T24_ = (NIM_BOOL)0;
3767 						T24_ = hasYieldsInExpressions__closureiters_371((*n)._kind_6.sons->data[i_3]);
3768 						if (!T24_) goto LA25_;
3769 						result = NIM_TRUE;
3770 						goto BeforeRet_;
3771 					}
3772 					LA25_: ;
3773 					i_4 += ((NI) 1);
3774 				} LA21: ;
3775 			}
3776 		}
3777 	}
3778 	break;
3779 	default:
3780 	{
3781 		{
3782 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c_2;
3783 			c_2 = NIM_NIL;
3784 			{
3785 				NI i_5;
3786 				NI colontmp__3;
3787 				NI i_6;
3788 				i_5 = (NI)0;
3789 				colontmp__3 = (NI)0;
3790 				colontmp__3 = safeLen__ast_3191(n);
3791 				i_6 = ((NI) 0);
3792 				{
3793 					while (1) {
3794 						if (!(i_6 < colontmp__3)) goto LA31;
3795 						i_5 = i_6;
3796 						c_2 = (*n)._kind_6.sons->data[i_5];
3797 						{
3798 							NIM_BOOL T34_;
3799 							T34_ = (NIM_BOOL)0;
3800 							T34_ = hasYieldsInExpressions__closureiters_371(c_2);
3801 							if (!T34_) goto LA35_;
3802 							result = NIM_TRUE;
3803 							goto BeforeRet_;
3804 						}
3805 						LA35_: ;
3806 						i_6 += ((NI) 1);
3807 					} LA31: ;
3808 				}
3809 			}
3810 		}
3811 	}
3812 	break;
3813 	}
3814 	}BeforeRet_: ;
3815 	return result;
3816 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,addGotoOut__closureiters_147)3817 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, addGotoOut__closureiters_147)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut) {
3818 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
3819 	result = NIM_NIL;
3820 	result = toStmtList__closureiters_136(n);
3821 	{
3822 		NIM_BOOL T3_;
3823 		NI T4_;
3824 		NI T6_;
3825 		T3_ = (NIM_BOOL)0;
3826 		T4_ = (NI)0;
3827 		T4_ = len__ast_3198(result);
3828 		T3_ = (T4_ == ((NI) 0));
3829 		if (T3_) goto LA5_;
3830 		T6_ = (NI)0;
3831 		T6_ = len__ast_3198(result);
3832 		T3_ = !(((*(*result)._kind_6.sons->data[(NI)(T6_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156)));
3833 		LA5_: ;
3834 		if (!T3_) goto LA7_;
3835 		add__ast_4797(result, gotoOut);
3836 	}
3837 	LA7_: ;
3838 	return result;
3839 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,transformBreaksAndContinuesInWhile__closureiters_179)3840 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformBreaksAndContinuesInWhile__closureiters_179)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* before, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* after) {
3841 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
3842 	result = NIM_NIL;
3843 	result = n;
3844 	switch ((*n).kind) {
3845 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
3846 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
3847 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
3848 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
3849 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
3850 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
3851 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
3852 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
3853 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
3854 	{
3855 	}
3856 	break;
3857 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
3858 	{
3859 	}
3860 	break;
3861 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 111):
3862 	{
3863 		result = before;
3864 	}
3865 	break;
3866 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
3867 	{
3868 		(*ctx).blockLevel += ((NI) 1);
3869 		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), transformBreaksAndContinuesInWhile__closureiters_179(ctx, (*result)._kind_6.sons->data[((NI) 1)], before, after));
3870 		(*ctx).blockLevel -= ((NI) 1);
3871 	}
3872 	break;
3873 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
3874 	{
3875 		{
3876 			if (!((*ctx).blockLevel == ((NI) 0))) goto LA8_;
3877 			result = after;
3878 		}
3879 		LA8_: ;
3880 	}
3881 	break;
3882 	default:
3883 	{
3884 		{
3885 			NI i;
3886 			NI colontmp_;
3887 			NI i_2;
3888 			i = (NI)0;
3889 			colontmp_ = (NI)0;
3890 			colontmp_ = len__ast_3198(n);
3891 			i_2 = ((NI) 0);
3892 			{
3893 				while (1) {
3894 					if (!(i_2 < colontmp_)) goto LA13;
3895 					i = i_2;
3896 					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), transformBreaksAndContinuesInWhile__closureiters_179(ctx, (*n)._kind_6.sons->data[i], before, after));
3897 					i_2 += ((NI) 1);
3898 				} LA13: ;
3899 			}
3900 		}
3901 	}
3902 	break;
3903 	}
3904 	return result;
3905 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,transformBreaksInBlock__closureiters_205)3906 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformBreaksInBlock__closureiters_205)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* label, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* after) {
3907 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
3908 	result = NIM_NIL;
3909 	result = n;
3910 	switch ((*n).kind) {
3911 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
3912 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
3913 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
3914 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
3915 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
3916 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
3917 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
3918 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
3919 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
3920 	{
3921 	}
3922 	break;
3923 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
3924 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
3925 	{
3926 		(*ctx).blockLevel += ((NI) 1);
3927 		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), transformBreaksInBlock__closureiters_205(ctx, (*result)._kind_6.sons->data[((NI) 1)], label, after));
3928 		(*ctx).blockLevel -= ((NI) 1);
3929 	}
3930 	break;
3931 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110):
3932 	{
3933 		{
3934 			if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1))) goto LA6_;
3935 			{
3936 				if (!((*ctx).blockLevel == ((NI) 0))) goto LA10_;
3937 				result = after;
3938 			}
3939 			LA10_: ;
3940 		}
3941 		goto LA4_;
3942 		LA6_: ;
3943 		{
3944 			{
3945 				NIM_BOOL T15_;
3946 				T15_ = (NIM_BOOL)0;
3947 				T15_ = ((*label).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
3948 				if (!(T15_)) goto LA16_;
3949 				T15_ = ((*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym == (*label)._kind_4.sym);
3950 				LA16_: ;
3951 				if (!T15_) goto LA17_;
3952 				result = after;
3953 			}
3954 			LA17_: ;
3955 		}
3956 		LA4_: ;
3957 	}
3958 	break;
3959 	default:
3960 	{
3961 		{
3962 			NI i;
3963 			NI colontmp_;
3964 			NI i_2;
3965 			i = (NI)0;
3966 			colontmp_ = (NI)0;
3967 			colontmp_ = len__ast_3198(n);
3968 			i_2 = ((NI) 0);
3969 			{
3970 				while (1) {
3971 					if (!(i_2 < colontmp_)) goto LA22;
3972 					i = i_2;
3973 					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), transformBreaksInBlock__closureiters_205(ctx, (*n)._kind_6.sons->data[i], label, after));
3974 					i_2 += ((NI) 1);
3975 				} LA22: ;
3976 			}
3977 		}
3978 	}
3979 	break;
3980 	}
3981 	return result;
3982 }
N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newOr__closureiters_251)3983 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newOr__closureiters_251)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b) {
3984 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
3985 	tyArray__T6RKPw8xfAeNaoei9aZGzXg T1_;
3986 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T2_;
3987 	result = NIM_NIL;
3988 	nimZeroMem((void*)T1_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
3989 	T2_ = NIM_NIL;
3990 	T2_ = getSysMagic__magicsys_29(g, (*a).info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_25), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 110));
3991 	T1_[0] = newSymNode__ast_3716(T2_);
3992 	T1_[1] = a;
3993 	T1_[2] = b;
3994 	result = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T1_, 3);
3995 	asgnRef((void**) (&(*result).typ), getSysType__magicsys_60(g, (*a).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
3996 	(*result).info = (*a).info;
3997 	return result;
3998 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newCurExcAccess__closureiters_91)3999 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newCurExcAccess__closureiters_91)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx) {
4000 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
4001 	result = NIM_NIL;
4002 	{
4003 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
4004 		if (!((*ctx).curExcSym == 0)) goto LA3_;
4005 		T5_ = NIM_NIL;
4006 		T5_ = callCodegenProc__lowerings_635((*ctx).g, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_24), unknownLineInfo__lineinfos_280, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
4007 		unsureAsgnRef((void**) (&(*ctx).curExcSym), newEnvVar__closureiters_49(ctx, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_26), (*T5_).typ));
4008 	}
4009 	LA3_: ;
4010 	result = newEnvVarAccess__closureiters_70((&(*ctx)), (*ctx).curExcSym);
4011 	return result;
4012 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newNullifyCurExc__closureiters_245)4013 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNullifyCurExc__closureiters_245)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
4014 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
4015 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* curExc;
4016 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nilnode;
4017 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T1_;
4018 	result = NIM_NIL;
4019 	curExc = newCurExcAccess__closureiters_91(ctx);
4020 	(*curExc).info = info;
4021 	nilnode = newNode__ast_3332(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
4022 	asgnRef((void**) (&(*nilnode).typ), (*curExc).typ);
4023 	nimZeroMem((void*)T1_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
4024 	T1_[0] = curExc;
4025 	T1_[1] = nilnode;
4026 	result = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T1_, 2);
4027 	return result;
4028 }
N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,collectExceptState__closureiters_256)4029 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, collectExceptState__closureiters_256)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
4030 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
4031 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifStmt;
4032 	tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g;
4033 	result = NIM_NIL;
4034 	ifStmt = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), (*n).info);
4035 	g = (*ctx).g;
4036 	{
4037 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* c;
4038 		c = NIM_NIL;
4039 		{
4040 			NI i;
4041 			NI colontmp_;
4042 			NI i_2;
4043 			i = (NI)0;
4044 			colontmp_ = (NI)0;
4045 			colontmp_ = safeLen__ast_3191(n);
4046 			i_2 = ((NI) 0);
4047 			{
4048 				while (1) {
4049 					if (!(i_2 < colontmp_)) goto LA4;
4050 					i = i_2;
4051 					c = (*n)._kind_6.sons->data[i];
4052 					{
4053 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifBranch;
4054 						NI T32_;
4055 						if (!((*c).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87))) goto LA7_;
4056 						ifBranch = NIM_NIL;
4057 						{
4058 							NI T11_;
4059 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond;
4060 							T11_ = (NI)0;
4061 							T11_ = len__ast_3198(c);
4062 							if (!(((NI) 1) < T11_)) goto LA12_;
4063 							cond = NIM_NIL;
4064 							{
4065 								NI i_3;
4066 								NI colontmp__2;
4067 								NI T15_;
4068 								NI i_4;
4069 								i_3 = (NI)0;
4070 								colontmp__2 = (NI)0;
4071 								T15_ = (NI)0;
4072 								T15_ = len__ast_3198(c);
4073 								colontmp__2 = (NI)(T15_ - ((NI) 1));
4074 								i_4 = ((NI) 0);
4075 								{
4076 									while (1) {
4077 										tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nextCond;
4078 										tyArray__T6RKPw8xfAeNaoei9aZGzXg T18_;
4079 										tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T19_;
4080 										if (!(i_4 < colontmp__2)) goto LA17;
4081 										i_3 = i_4;
4082 										nimZeroMem((void*)T18_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
4083 										T19_ = NIM_NIL;
4084 										T19_ = getSysMagic__magicsys_29(g, (*c).info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_23), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 15));
4085 										T18_[0] = newSymNode__ast_3716(T19_);
4086 										T18_[1] = callCodegenProc__lowerings_635(g, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_24), unknownLineInfo__lineinfos_280, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
4087 										T18_[2] = (*c)._kind_6.sons->data[i_3];
4088 										nextCond = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T18_, 3);
4089 										asgnRef((void**) (&(*nextCond).typ), getSysType__magicsys_60((*ctx).g, (*c).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
4090 										(*nextCond).info = (*c).info;
4091 										{
4092 											if (!(cond == 0)) goto LA22_;
4093 											cond = nextCond;
4094 										}
4095 										goto LA20_;
4096 										LA22_: ;
4097 										{
4098 											cond = newOr__closureiters_251(g, cond, nextCond);
4099 										}
4100 										LA20_: ;
4101 										i_4 += ((NI) 1);
4102 									} LA17: ;
4103 								}
4104 							}
4105 							ifBranch = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), (*c).info);
4106 							add__ast_4797(ifBranch, cond);
4107 						}
4108 						goto LA9_;
4109 						LA12_: ;
4110 						{
4111 							{
4112 								NI T28_;
4113 								T28_ = (NI)0;
4114 								T28_ = len__ast_3198(ifStmt);
4115 								if (!(T28_ == ((NI) 0))) goto LA29_;
4116 								ifStmt = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*c).info);
4117 								ifBranch = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*c).info);
4118 							}
4119 							goto LA26_;
4120 							LA29_: ;
4121 							{
4122 								ifBranch = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), (*c).info);
4123 							}
4124 							LA26_: ;
4125 						}
4126 						LA9_: ;
4127 						T32_ = (NI)0;
4128 						T32_ = len__ast_3198(c);
4129 						add__ast_4797(ifBranch, (*c)._kind_6.sons->data[(NI)(T32_ - ((NI) 1))]);
4130 						add__ast_4797(ifStmt, ifBranch);
4131 					}
4132 					LA7_: ;
4133 					i_2 += ((NI) 1);
4134 				} LA4: ;
4135 			}
4136 		}
4137 	}
4138 	{
4139 		NI T35_;
4140 		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T38_;
4141 		T35_ = (NI)0;
4142 		T35_ = len__ast_3198(ifStmt);
4143 		if (!!((T35_ == ((NI) 0)))) goto LA36_;
4144 		nimZeroMem((void*)T38_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
4145 		T38_[0] = newNullifyCurExc__closureiters_245(ctx, (*n).info);
4146 		T38_[1] = ifStmt;
4147 		result = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T38_, 2);
4148 	}
4149 	goto LA33_;
4150 	LA36_: ;
4151 	{
4152 		result = (*(*ctx).g).emptyNode;
4153 	}
4154 	LA33_: ;
4155 	return result;
4156 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,getFinallyNode__closureiters_357)4157 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getFinallyNode__closureiters_357)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
4158 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
4159 	NI T1_;
4160 	result = NIM_NIL;
4161 	T1_ = (NI)0;
4162 	T1_ = len__ast_3198(n);
4163 	result = (*n)._kind_6.sons->data[(NI)(T1_ - ((NI) 1))];
4164 	{
4165 		if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 107))) goto LA4_;
4166 		result = (*result)._kind_6.sons->data[((NI) 0)];
4167 	}
4168 	goto LA2_;
4169 	LA4_: ;
4170 	{
4171 		result = (*(*ctx).g).emptyNode;
4172 	}
4173 	LA2_: ;
4174 	return result;
4175 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newUnrollFinallyAccess__closureiters_84)4176 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newUnrollFinallyAccess__closureiters_84)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
4177 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
4178 	result = NIM_NIL;
4179 	{
4180 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T5_;
4181 		if (!((*ctx).unrollFinallySym == 0)) goto LA3_;
4182 		T5_ = NIM_NIL;
4183 		T5_ = getSysType__magicsys_60((*ctx).g, info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
4184 		unsureAsgnRef((void**) (&(*ctx).unrollFinallySym), newEnvVar__closureiters_49(ctx, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_27), T5_));
4185 	}
4186 	LA3_: ;
4187 	result = newEnvVarAccess__closureiters_70((&(*ctx)), (*ctx).unrollFinallySym);
4188 	return result;
4189 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newTmpResultAccess__closureiters_77)4190 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTmpResultAccess__closureiters_77)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx) {
4191 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
4192 	result = NIM_NIL;
4193 	{
4194 		if (!((*ctx).tmpResultSym == 0)) goto LA3_;
4195 		unsureAsgnRef((void**) (&(*ctx).tmpResultSym), newEnvVar__closureiters_49(ctx, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_28), (*(*(*ctx).fn).typ).sons->data[((NI) 0)]));
4196 	}
4197 	LA3_: ;
4198 	result = newEnvVarAccess__closureiters_70((&(*ctx)), (*ctx).tmpResultSym);
4199 	return result;
4200 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,transformReturnsInTry__closureiters_1107)4201 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformReturnsInTry__closureiters_1107)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
4202 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
4203 	result = NIM_NIL;
4204 	result = n;
4205 	switch ((*n).kind) {
4206 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
4207 	{
4208 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
4209 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* goto_1;
4210 		tyArray__jlWPjgtbdjE069arIWHC9c9bg T17_;
4211 		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
4212 		{
4213 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* asgn;
4214 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
4215 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T4_;
4216 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
4217 			asgn = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*n).info);
4218 			T3_ = NIM_NIL;
4219 			T3_ = newUnrollFinallyAccess__closureiters_84(ctx, (*n).info);
4220 			add__ast_4797(asgn, T3_);
4221 			T4_ = NIM_NIL;
4222 			T4_ = getSysType__magicsys_60((*ctx).g, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
4223 			T5_ = NIM_NIL;
4224 			T5_ = newIntTypeNode__ast_3783(IL64(1), T4_);
4225 			add__ast_4797(asgn, T5_);
4226 			add__ast_4797(result, asgn);
4227 		}
4228 		{
4229 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* asgnTmpResult;
4230 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
4231 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
4232 			if (!!(((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA8_;
4233 			asgnTmpResult = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*n).info);
4234 			T10_ = NIM_NIL;
4235 			T10_ = newTmpResultAccess__closureiters_77(ctx);
4236 			add__ast_4797(asgnTmpResult, T10_);
4237 			{
4238 				if (!((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73) || (*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74))) goto LA13_;
4239 				x = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 1)];
4240 			}
4241 			goto LA11_;
4242 			LA13_: ;
4243 			{
4244 				x = (*n)._kind_6.sons->data[((NI) 0)];
4245 			}
4246 			LA11_: ;
4247 			add__ast_4797(asgnTmpResult, x);
4248 			add__ast_4797(result, asgnTmpResult);
4249 		}
4250 		LA8_: ;
4251 		T16_ = NIM_NIL;
4252 		T16_ = newNullifyCurExc__closureiters_245(ctx, (*n).info);
4253 		add__ast_4797(result, T16_);
4254 		nimZeroMem((void*)T17_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4255 		T17_[0] = newIntLit__lowerings_695((*ctx).g, (*n).info, ((NI64) ((*ctx).nearestFinally)));
4256 		goto_1 = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), T17_, 1);
4257 		add__ast_4797(result, goto_1);
4258 	}
4259 	break;
4260 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
4261 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
4262 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
4263 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
4264 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
4265 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
4266 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
4267 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
4268 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
4269 	{
4270 	}
4271 	break;
4272 	default:
4273 	{
4274 		{
4275 			NI i;
4276 			NI colontmp_;
4277 			NI i_2;
4278 			i = (NI)0;
4279 			colontmp_ = (NI)0;
4280 			colontmp_ = len__ast_3198(n);
4281 			i_2 = ((NI) 0);
4282 			{
4283 				while (1) {
4284 					if (!(i_2 < colontmp_)) goto LA22;
4285 					i = i_2;
4286 					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), transformReturnsInTry__closureiters_1107(ctx, (*n)._kind_6.sons->data[i]));
4287 					i_2 += ((NI) 1);
4288 				} LA22: ;
4289 			}
4290 		}
4291 	}
4292 	break;
4293 	}
4294 	return result;
4295 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newEndFinallyNode__closureiters_1092)4296 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newEndFinallyNode__closureiters_1092)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
4297 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
4298 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* curExc;
4299 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nilnode;
4300 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cmp;
4301 	tyArray__T6RKPw8xfAeNaoei9aZGzXg T1_;
4302 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T2_;
4303 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* asgn;
4304 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T3_;
4305 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T4_;
4306 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* retStmt;
4307 	tyArray__jlWPjgtbdjE069arIWHC9c9bg T5_;
4308 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
4309 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T6_;
4310 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nullifyExc;
4311 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T7_;
4312 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T8_;
4313 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* raiseStmt;
4314 	tyArray__jlWPjgtbdjE069arIWHC9c9bg T9_;
4315 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elseBranch;
4316 	tyArray__jlWPjgtbdjE069arIWHC9c9bg T10_;
4317 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T11_;
4318 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifBody;
4319 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T12_;
4320 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elifBranch;
4321 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T13_;
4322 	tyArray__jlWPjgtbdjE069arIWHC9c9bg T14_;
4323 	result = NIM_NIL;
4324 	curExc = newCurExcAccess__closureiters_91(ctx);
4325 	nilnode = newNode__ast_3332(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23));
4326 	asgnRef((void**) (&(*nilnode).typ), (*curExc).typ);
4327 	nimZeroMem((void*)T1_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
4328 	T2_ = NIM_NIL;
4329 	T2_ = getSysMagic__magicsys_29((*ctx).g, info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_29), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87));
4330 	T1_[0] = newSymNode__ast_3719(T2_, info);
4331 	T1_[1] = curExc;
4332 	T1_[2] = nilnode;
4333 	cmp = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T1_, 3);
4334 	asgnRef((void**) (&(*cmp).typ), getSysType__magicsys_60((*ctx).g, info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
4335 	nimZeroMem((void*)T3_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
4336 	T4_ = NIM_NIL;
4337 	T4_ = getClosureIterResult__lambdalifting_62((*ctx).g, (*ctx).fn, (*ctx).idgen);
4338 	T3_[0] = newSymNode__ast_3719(T4_, info);
4339 	T3_[1] = newTmpResultAccess__closureiters_77(ctx);
4340 	asgn = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 74), T3_, 2);
4341 	nimZeroMem((void*)T5_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4342 	T5_[0] = asgn;
4343 	retStmt = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109), T5_, 1);
4344 	nimZeroMem((void*)T6_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
4345 	T6_[0] = cmp;
4346 	T6_[1] = retStmt;
4347 	branch = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T6_, 2);
4348 	nimZeroMem((void*)T7_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
4349 	T8_ = NIM_NIL;
4350 	T8_ = getCompilerProc__magicsys_145((*ctx).g, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_30));
4351 	T7_[0] = newSymNode__ast_3716(T8_);
4352 	T7_[1] = nilnode;
4353 	nullifyExc = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T7_, 2);
4354 	(*nullifyExc).info = info;
4355 	nimZeroMem((void*)T9_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4356 	T9_[0] = curExc;
4357 	raiseStmt = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108), T9_, 1);
4358 	(*raiseStmt).info = info;
4359 	nimZeroMem((void*)T10_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4360 	nimZeroMem((void*)T11_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
4361 	T11_[0] = nullifyExc;
4362 	T11_[1] = raiseStmt;
4363 	T10_[0] = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T11_, 2);
4364 	elseBranch = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), T10_, 1);
4365 	nimZeroMem((void*)T12_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
4366 	T12_[0] = branch;
4367 	T12_[1] = elseBranch;
4368 	ifBody = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T12_, 2);
4369 	nimZeroMem((void*)T13_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
4370 	T13_[0] = newUnrollFinallyAccess__closureiters_84(ctx, info);
4371 	T13_[1] = ifBody;
4372 	elifBranch = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T13_, 2);
4373 	(*elifBranch).info = info;
4374 	nimZeroMem((void*)T14_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4375 	T14_[0] = elifBranch;
4376 	result = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T14_, 1);
4377 	return result;
4378 }
N_NIMCALL(void,addElseToExcept__closureiters_316)4379 N_LIB_PRIVATE N_NIMCALL(void, addElseToExcept__closureiters_316)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
4380 	{
4381 		NIM_BOOL T3_;
4382 		NIM_BOOL T4_;
4383 		NI T7_;
4384 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branchBody;
4385 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elseBranch;
4386 		tyArray__jlWPjgtbdjE069arIWHC9c9bg T20_;
4387 		T3_ = (NIM_BOOL)0;
4388 		T4_ = (NIM_BOOL)0;
4389 		T4_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115));
4390 		if (!(T4_)) goto LA5_;
4391 		T4_ = ((*(*n)._kind_6.sons->data[((NI) 1)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92));
4392 		LA5_: ;
4393 		T3_ = T4_;
4394 		if (!(T3_)) goto LA6_;
4395 		T7_ = (NI)0;
4396 		T7_ = len__ast_3198((*n)._kind_6.sons->data[((NI) 1)]);
4397 		T3_ = !(((*(*(*n)._kind_6.sons->data[((NI) 1)])._kind_6.sons->data[(NI)(T7_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88)));
4398 		LA6_: ;
4399 		if (!T3_) goto LA8_;
4400 		branchBody = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
4401 		{
4402 			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T11_;
4403 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T12_;
4404 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
4405 			nimZeroMem((void*)T11_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
4406 			T11_[0] = newUnrollFinallyAccess__closureiters_84(ctx, (*n).info);
4407 			T12_ = NIM_NIL;
4408 			T12_ = getSysType__magicsys_60((*ctx).g, (*n).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
4409 			T11_[1] = newIntTypeNode__ast_3783(IL64(1), T12_);
4410 			T13_ = NIM_NIL;
4411 			T13_ = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T11_, 2);
4412 			add__ast_4797(branchBody, T13_);
4413 		}
4414 		{
4415 			tyArray__AB6yfoUgfWM2NtGe9bzkCmw T15_;
4416 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
4417 			nimZeroMem((void*)T15_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
4418 			T15_[0] = newCurExcAccess__closureiters_91(ctx);
4419 			T15_[1] = callCodegenProc__lowerings_635((*ctx).g, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_24), unknownLineInfo__lineinfos_280, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
4420 			T16_ = NIM_NIL;
4421 			T16_ = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T15_, 2);
4422 			add__ast_4797(branchBody, T16_);
4423 		}
4424 		{
4425 			tyArray__jlWPjgtbdjE069arIWHC9c9bg T18_;
4426 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
4427 			nimZeroMem((void*)T18_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4428 			T18_[0] = newIntLit__lowerings_695((*ctx).g, (*n).info, ((NI64) ((*ctx).nearestFinally)));
4429 			T19_ = NIM_NIL;
4430 			T19_ = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), T18_, 1);
4431 			add__ast_4797(branchBody, T19_);
4432 		}
4433 		nimZeroMem((void*)T20_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4434 		T20_[0] = branchBody;
4435 		elseBranch = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), T20_, 1);
4436 		add__ast_4797((*n)._kind_6.sons->data[((NI) 1)], elseBranch);
4437 	}
4438 	LA8_: ;
4439 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,transformClosureIteratorBody__closureiters_1173)4440 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformClosureIteratorBody__closureiters_1173)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut) {
4441 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
4442 	result = NIM_NIL;
4443 	result = n;
4444 	switch ((*n).kind) {
4445 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
4446 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
4447 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
4448 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
4449 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
4450 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
4451 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
4452 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
4453 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
4454 	{
4455 	}
4456 	break;
4457 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
4458 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
4459 	{
4460 		result = addGotoOut__closureiters_147(result, gotoOut);
4461 		{
4462 			NI i;
4463 			NI colontmp_;
4464 			NI i_2;
4465 			i = (NI)0;
4466 			colontmp_ = (NI)0;
4467 			colontmp_ = len__ast_3198(n);
4468 			i_2 = ((NI) 0);
4469 			{
4470 				while (1) {
4471 					if (!(i_2 < colontmp_)) goto LA5;
4472 					i = i_2;
4473 					{
4474 						NIM_BOOL T8_;
4475 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* go;
4476 						tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
4477 						NI T14_;
4478 						T8_ = (NIM_BOOL)0;
4479 						T8_ = hasYields__closureiters_175((*n)._kind_6.sons->data[i]);
4480 						if (!T8_) goto LA9_;
4481 						go = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), (*(*n)._kind_6.sons->data[i]).info);
4482 						asgnRef((void**) (&(*n)._kind_6.sons->data[i]), transformClosureIteratorBody__closureiters_1173(ctx, (*n)._kind_6.sons->data[i], go));
4483 						s = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*(*n)._kind_6.sons->data[(NI)(i + ((NI) 1))]).info);
4484 						{
4485 							NI j;
4486 							NI colontmp__2;
4487 							NI colontmp__3;
4488 							NI i_3;
4489 							j = (NI)0;
4490 							colontmp__2 = (NI)0;
4491 							colontmp__3 = (NI)0;
4492 							colontmp__2 = (NI)(i + ((NI) 1));
4493 							colontmp__3 = len__ast_3198(n);
4494 							i_3 = colontmp__2;
4495 							{
4496 								while (1) {
4497 									if (!(i_3 < colontmp__3)) goto LA13;
4498 									j = i_3;
4499 									add__ast_4797(s, (*n)._kind_6.sons->data[j]);
4500 									i_3 += ((NI) 1);
4501 								} LA13: ;
4502 							}
4503 						}
4504 						asgnRef((void**) (&(*n)._kind_6.sons), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*n)._kind_6.sons)->Sup, (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) ((NI)(i + ((NI) 1))))));
4505 						T14_ = (NI)0;
4506 						T14_ = newState__closureiters_97(ctx, s, go);
4507 						(void)(T14_);
4508 						{
4509 							tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
4510 							T17_ = NIM_NIL;
4511 							T17_ = transformClosureIteratorBody__closureiters_1173(ctx, s, gotoOut);
4512 							if (!!((T17_ == s))) goto LA18_;
4513 							internalErrorImpl__msgs_1431((*(*ctx).g).config, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_21), TM__slVvvIjx75ivXdMpHiE9c9aQ_22);
4514 						}
4515 						LA18_: ;
4516 						goto LA3;
4517 					}
4518 					LA9_: ;
4519 					i_2 += ((NI) 1);
4520 				} LA5: ;
4521 			}
4522 		} LA3: ;
4523 	}
4524 	break;
4525 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 104):
4526 	{
4527 		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
4528 		add__ast_4797(result, n);
4529 		add__ast_4797(result, gotoOut);
4530 	}
4531 	break;
4532 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88):
4533 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 50):
4534 	{
4535 		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), addGotoOut__closureiters_147((*result)._kind_6.sons->data[((NI) 0)], gotoOut));
4536 		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), transformClosureIteratorBody__closureiters_1173(ctx, (*result)._kind_6.sons->data[((NI) 0)], gotoOut));
4537 	}
4538 	break;
4539 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86):
4540 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 49):
4541 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 85):
4542 	{
4543 		NI T23_;
4544 		NI T24_;
4545 		NI T25_;
4546 		NI T26_;
4547 		T23_ = (NI)0;
4548 		T23_ = len__ast_3198(result);
4549 		T24_ = (NI)0;
4550 		T24_ = len__ast_3198(result);
4551 		asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(T23_ - ((NI) 1))]), addGotoOut__closureiters_147((*result)._kind_6.sons->data[(NI)(T24_ - ((NI) 1))], gotoOut));
4552 		T25_ = (NI)0;
4553 		T25_ = len__ast_3198(result);
4554 		T26_ = (NI)0;
4555 		T26_ = len__ast_3198(result);
4556 		asgnRef((void**) (&(*result)._kind_6.sons->data[(NI)(T25_ - ((NI) 1))]), transformClosureIteratorBody__closureiters_1173(ctx, (*result)._kind_6.sons->data[(NI)(T26_ - ((NI) 1))], gotoOut));
4557 	}
4558 	break;
4559 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92):
4560 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97):
4561 	{
4562 		{
4563 			NI i_4;
4564 			NI colontmp__4;
4565 			NI i_5;
4566 			i_4 = (NI)0;
4567 			colontmp__4 = (NI)0;
4568 			colontmp__4 = len__ast_3198(n);
4569 			i_5 = ((NI) 0);
4570 			{
4571 				while (1) {
4572 					if (!(i_5 < colontmp__4)) goto LA30;
4573 					i_4 = i_5;
4574 					asgnRef((void**) (&(*n)._kind_6.sons->data[i_4]), transformClosureIteratorBody__closureiters_1173(ctx, (*n)._kind_6.sons->data[i_4], gotoOut));
4575 					i_5 += ((NI) 1);
4576 				} LA30: ;
4577 			}
4578 		}
4579 		{
4580 			NI T33_;
4581 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elseBranch;
4582 			tyArray__jlWPjgtbdjE069arIWHC9c9bg T36_;
4583 			T33_ = (NI)0;
4584 			T33_ = len__ast_3198(n);
4585 			if (!!(((*(*n)._kind_6.sons->data[(NI)(T33_ - ((NI) 1))]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88)))) goto LA34_;
4586 			nimZeroMem((void*)T36_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4587 			T36_[0] = gotoOut;
4588 			elseBranch = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), T36_, 1);
4589 			add__ast_4797(n, elseBranch);
4590 		}
4591 		LA34_: ;
4592 	}
4593 	break;
4594 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96):
4595 	{
4596 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s_2;
4597 		NI T38_;
4598 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifNode;
4599 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elifBranch;
4600 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
4601 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elseBranch_2;
4602 		tyArray__jlWPjgtbdjE069arIWHC9c9bg T39_;
4603 		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), (*n).info);
4604 		s_2 = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
4605 		T38_ = (NI)0;
4606 		T38_ = newState__closureiters_97(ctx, s_2, result);
4607 		(void)(T38_);
4608 		ifNode = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), (*n).info);
4609 		elifBranch = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), (*n).info);
4610 		add__ast_4797(elifBranch, (*n)._kind_6.sons->data[((NI) 0)]);
4611 		body = addGotoOut__closureiters_147((*n)._kind_6.sons->data[((NI) 1)], result);
4612 		body = transformBreaksAndContinuesInWhile__closureiters_179(ctx, body, result, gotoOut);
4613 		body = transformClosureIteratorBody__closureiters_1173(ctx, body, result);
4614 		add__ast_4797(elifBranch, body);
4615 		add__ast_4797(ifNode, elifBranch);
4616 		nimZeroMem((void*)T39_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4617 		T39_[0] = gotoOut;
4618 		elseBranch_2 = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 88), T39_, 1);
4619 		add__ast_4797(ifNode, elseBranch_2);
4620 		add__ast_4797(s_2, ifNode);
4621 	}
4622 	break;
4623 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112):
4624 	{
4625 		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), addGotoOut__closureiters_147((*result)._kind_6.sons->data[((NI) 1)], gotoOut));
4626 		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), transformBreaksInBlock__closureiters_205(ctx, (*result)._kind_6.sons->data[((NI) 1)], (*result)._kind_6.sons->data[((NI) 0)], gotoOut));
4627 		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), transformClosureIteratorBody__closureiters_1173(ctx, (*result)._kind_6.sons->data[((NI) 1)], gotoOut));
4628 	}
4629 	break;
4630 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106):
4631 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 154):
4632 	{
4633 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tryBody;
4634 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exceptBody;
4635 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* finallyBody;
4636 		tyArray__jlWPjgtbdjE069arIWHC9c9bg T42_;
4637 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
4638 		NI tryIdx;
4639 		NI T44_;
4640 		NI exceptIdx;
4641 		NI finallyIdx;
4642 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* outToFinally;
4643 		(*ctx).hasExceptions = NIM_TRUE;
4644 		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), (*n).info);
4645 		tryBody = toStmtList__closureiters_136((*n)._kind_6.sons->data[((NI) 0)]);
4646 		exceptBody = collectExceptState__closureiters_256(ctx, n);
4647 		nimZeroMem((void*)T42_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4648 		T42_[0] = getFinallyNode__closureiters_357(ctx, n);
4649 		finallyBody = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T42_, 1);
4650 		finallyBody = transformReturnsInTry__closureiters_1107(ctx, finallyBody);
4651 		T43_ = NIM_NIL;
4652 		T43_ = newEndFinallyNode__closureiters_1092(ctx, (*finallyBody).info);
4653 		add__ast_4797(finallyBody, T43_);
4654 		T44_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
4655 		tryIdx = T44_;
4656 		exceptIdx = (NI)0;
4657 		finallyIdx = (NI)0;
4658 		{
4659 			if (!!(((*exceptBody).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA47_;
4660 			exceptIdx = ((NI32)-((NI)(tryIdx + ((NI) 1))));
4661 			finallyIdx = (NI)(tryIdx + ((NI) 2));
4662 		}
4663 		goto LA45_;
4664 		LA47_: ;
4665 		{
4666 			exceptIdx = (NI)(tryIdx + ((NI) 1));
4667 			finallyIdx = (NI)(tryIdx + ((NI) 1));
4668 		}
4669 		LA45_: ;
4670 		outToFinally = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), (*finallyBody).info);
4671 		{
4672 			NI oldExcHandlingState;
4673 			NI realTryIdx;
4674 			NI realFinallyIdx;
4675 			oldExcHandlingState = (*ctx).curExcHandlingState;
4676 			(*ctx).curExcHandlingState = exceptIdx;
4677 			realTryIdx = newState__closureiters_97(ctx, tryBody, result);
4678 			{
4679 				NI realExceptIdx;
4680 				if (!!(((*exceptBody).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA53_;
4681 				(*ctx).curExcHandlingState = finallyIdx;
4682 				realExceptIdx = newState__closureiters_97(ctx, exceptBody, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
4683 			}
4684 			LA53_: ;
4685 			(*ctx).curExcHandlingState = oldExcHandlingState;
4686 			realFinallyIdx = newState__closureiters_97(ctx, finallyBody, outToFinally);
4687 		}
4688 		{
4689 			NI oldNearestFinally;
4690 			NI oldExcHandlingState_2;
4691 			oldNearestFinally = (*ctx).nearestFinally;
4692 			(*ctx).nearestFinally = finallyIdx;
4693 			oldExcHandlingState_2 = (*ctx).curExcHandlingState;
4694 			(*ctx).curExcHandlingState = exceptIdx;
4695 			{
4696 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T58_;
4697 				T58_ = NIM_NIL;
4698 				T58_ = transformReturnsInTry__closureiters_1107(ctx, tryBody);
4699 				if (!!((T58_ == tryBody))) goto LA59_;
4700 				internalErrorImpl__msgs_1431((*(*ctx).g).config, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_31), TM__slVvvIjx75ivXdMpHiE9c9aQ_32);
4701 			}
4702 			LA59_: ;
4703 			{
4704 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T63_;
4705 				T63_ = NIM_NIL;
4706 				T63_ = transformClosureIteratorBody__closureiters_1173(ctx, tryBody, outToFinally);
4707 				if (!!((T63_ == tryBody))) goto LA64_;
4708 				internalErrorImpl__msgs_1431((*(*ctx).g).config, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_33), TM__slVvvIjx75ivXdMpHiE9c9aQ_34);
4709 			}
4710 			LA64_: ;
4711 			(*ctx).curExcHandlingState = finallyIdx;
4712 			addElseToExcept__closureiters_316(ctx, exceptBody);
4713 			{
4714 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T68_;
4715 				T68_ = NIM_NIL;
4716 				T68_ = transformReturnsInTry__closureiters_1107(ctx, exceptBody);
4717 				if (!!((T68_ == exceptBody))) goto LA69_;
4718 				internalErrorImpl__msgs_1431((*(*ctx).g).config, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_35), TM__slVvvIjx75ivXdMpHiE9c9aQ_36);
4719 			}
4720 			LA69_: ;
4721 			{
4722 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T73_;
4723 				T73_ = NIM_NIL;
4724 				T73_ = transformClosureIteratorBody__closureiters_1173(ctx, exceptBody, outToFinally);
4725 				if (!!((T73_ == exceptBody))) goto LA74_;
4726 				internalErrorImpl__msgs_1431((*(*ctx).g).config, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_37), TM__slVvvIjx75ivXdMpHiE9c9aQ_38);
4727 			}
4728 			LA74_: ;
4729 			(*ctx).curExcHandlingState = oldExcHandlingState_2;
4730 			(*ctx).nearestFinally = oldNearestFinally;
4731 			{
4732 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T78_;
4733 				T78_ = NIM_NIL;
4734 				T78_ = transformClosureIteratorBody__closureiters_1173(ctx, finallyBody, gotoOut);
4735 				if (!!((T78_ == finallyBody))) goto LA79_;
4736 				internalErrorImpl__msgs_1431((*(*ctx).g).config, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_39), TM__slVvvIjx75ivXdMpHiE9c9aQ_40);
4737 			}
4738 			LA79_: ;
4739 		}
4740 	}
4741 	break;
4742 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156):
4743 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 94):
4744 	{
4745 		NimStringDesc* T82_;
4746 		T82_ = NIM_NIL;
4747 		T82_ = rawNewString((reprEnum((NI)(*n).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_)) ? reprEnum((NI)(*n).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_))->Sup.len : 0) + 13);
4748 appendString(T82_, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_41));
4749 appendString(T82_, reprEnum((NI)(*n).kind, (&NTItnodekind__G4E4Gxe7oI2Cm03rkiOzQw_)));
4750 		internalErrorImpl__msgs_1431((*(*ctx).g).config, unknownLineInfo__lineinfos_280, T82_, TM__slVvvIjx75ivXdMpHiE9c9aQ_42);
4751 	}
4752 	break;
4753 	default:
4754 	{
4755 		{
4756 			NI i_6;
4757 			NI colontmp__5;
4758 			NI i_7;
4759 			i_6 = (NI)0;
4760 			colontmp__5 = (NI)0;
4761 			colontmp__5 = len__ast_3198(n);
4762 			i_7 = ((NI) 0);
4763 			{
4764 				while (1) {
4765 					if (!(i_7 < colontmp__5)) goto LA86;
4766 					i_6 = i_7;
4767 					asgnRef((void**) (&(*n)._kind_6.sons->data[i_6]), transformClosureIteratorBody__closureiters_1173(ctx, (*n)._kind_6.sons->data[i_6], gotoOut));
4768 					i_7 += ((NI) 1);
4769 				} LA86: ;
4770 			}
4771 		}
4772 	}
4773 	break;
4774 	}
4775 	return result;
4776 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,skipStmtList__closureiters_1491)4777 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipStmtList__closureiters_1491)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
4778 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
4779 {	result = NIM_NIL;
4780 	result = n;
4781 	{
4782 		while (1) {
4783 			if (!((*result).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115))) goto LA2;
4784 			{
4785 				NI T5_;
4786 				T5_ = (NI)0;
4787 				T5_ = len__ast_3198(result);
4788 				if (!(T5_ == ((NI) 0))) goto LA6_;
4789 				result = (*(*ctx).g).emptyNode;
4790 				goto BeforeRet_;
4791 			}
4792 			LA6_: ;
4793 			result = (*result)._kind_6.sons->data[((NI) 0)];
4794 		} LA2: ;
4795 	}
4796 	}BeforeRet_: ;
4797 	return result;
4798 }
N_NIMCALL(NI,skipEmptyStates__closureiters_1503)4799 N_LIB_PRIVATE N_NIMCALL(NI, skipEmptyStates__closureiters_1503)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, NI stateIdx) {
4800 	NI result;
4801 	NI maxJumps;
4802 	NI T1_;
4803 	NI stateIdx_2;
4804 	result = (NI)0;
4805 	T1_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
4806 	maxJumps = T1_;
4807 	stateIdx_2 = stateIdx;
4808 	{
4809 		while (1) {
4810 			NI label;
4811 			NI newLabel;
4812 			label = stateIdx_2;
4813 			{
4814 				if (!(label == (*ctx).exitStateIdx)) goto LA6_;
4815 				goto LA2;
4816 			}
4817 			LA6_: ;
4818 			newLabel = label;
4819 			{
4820 				if (!(label == ((NI) -1))) goto LA10_;
4821 				newLabel = (*ctx).exitStateIdx;
4822 			}
4823 			goto LA8_;
4824 			LA10_: ;
4825 			{
4826 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fs;
4827 				fs = skipStmtList__closureiters_1491(ctx, (*(*ctx).states->data[label])._kind_6.sons->data[((NI) 1)]);
4828 				{
4829 					if (!((*fs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156))) goto LA15_;
4830 					newLabel = ((NI) ((*(*fs)._kind_6.sons->data[((NI) 0)])._kind_1.intVal));
4831 				}
4832 				LA15_: ;
4833 			}
4834 			LA8_: ;
4835 			{
4836 				if (!(label == newLabel)) goto LA19_;
4837 				goto LA2;
4838 			}
4839 			LA19_: ;
4840 			stateIdx_2 = newLabel;
4841 			maxJumps -= ((NI) 1);
4842 			{
4843 				if (!(maxJumps == ((NI) 0))) goto LA23_;
4844 			}
4845 			LA23_: ;
4846 		}
4847 	} LA2: ;
4848 	result = ((NI) ((*(*(*ctx).states->data[stateIdx_2])._kind_6.sons->data[((NI) 0)])._kind_1.intVal));
4849 	return result;
4850 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,skipThroughEmptyStates__closureiters_1529)4851 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, skipThroughEmptyStates__closureiters_1529)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
4852 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
4853 	result = NIM_NIL;
4854 	result = n;
4855 	switch ((*n).kind) {
4856 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
4857 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
4858 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
4859 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
4860 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
4861 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
4862 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
4863 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
4864 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
4865 	{
4866 	}
4867 	break;
4868 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156):
4869 	{
4870 		NI T3_;
4871 		result = copyTree__ast_4431(n);
4872 		T3_ = (NI)0;
4873 		T3_ = skipEmptyStates__closureiters_1503((&(*ctx)), ((NI) ((*(*result)._kind_6.sons->data[((NI) 0)])._kind_1.intVal)));
4874 		(*(*result)._kind_6.sons->data[((NI) 0)])._kind_1.intVal = ((NI64) (T3_));
4875 	}
4876 	break;
4877 	default:
4878 	{
4879 		{
4880 			NI i;
4881 			NI colontmp_;
4882 			NI i_2;
4883 			i = (NI)0;
4884 			colontmp_ = (NI)0;
4885 			colontmp_ = len__ast_3198(n);
4886 			i_2 = ((NI) 0);
4887 			{
4888 				while (1) {
4889 					if (!(i_2 < colontmp_)) goto LA7;
4890 					i = i_2;
4891 					asgnRef((void**) (&(*n)._kind_6.sons->data[i]), skipThroughEmptyStates__closureiters_1529(ctx, (*n)._kind_6.sons->data[i]));
4892 					i_2 += ((NI) 1);
4893 				} LA7: ;
4894 			}
4895 		}
4896 	}
4897 	break;
4898 	}
4899 	return result;
4900 }
N_NIMCALL(void,delete__closureiters_1709)4901 N_LIB_PRIVATE N_NIMCALL(void, delete__closureiters_1709)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, NI i) {
4902 	NI xlX60gensym304_;
4903 	NI T1_;
4904 	T1_ = ((*x) ? (*x)->Sup.len : 0);
4905 	xlX60gensym304_ = T1_;
4906 	{
4907 		NI jX60gensym304_;
4908 		NI colontmp_;
4909 		NI colontmp__2;
4910 		NI res;
4911 		jX60gensym304_ = (NI)0;
4912 		colontmp_ = (NI)0;
4913 		colontmp__2 = (NI)0;
4914 		colontmp_ = ((NI) (i));
4915 		colontmp__2 = (NI)(xlX60gensym304_ - ((NI) 2));
4916 		res = colontmp_;
4917 		{
4918 			while (1) {
4919 				if (!(res <= colontmp__2)) goto LA4;
4920 				jX60gensym304_ = res;
4921 				asgnRef((void**) (&(*x)->data[jX60gensym304_]), (*x)->data[(NI)(jX60gensym304_ + ((NI) 1))]);
4922 				res += ((NI) 1);
4923 			} LA4: ;
4924 		}
4925 	}
4926 	unsureAsgnRef((void**) (&(*x)), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*x))->Sup, (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) ((NI)(xlX60gensym304_ - ((NI) 1))))));
4927 }
N_NIMCALL(void,delete__closureiters_1746)4928 N_LIB_PRIVATE N_NIMCALL(void, delete__closureiters_1746)(tySequence__qwqHTkRvwhrRyENtudHQ7g** x, NI i) {
4929 	NI xlX60gensym306_;
4930 	NI T1_;
4931 	T1_ = ((*x) ? (*x)->Sup.len : 0);
4932 	xlX60gensym306_ = T1_;
4933 	{
4934 		NI jX60gensym306_;
4935 		NI colontmp_;
4936 		NI colontmp__2;
4937 		NI res;
4938 		jX60gensym306_ = (NI)0;
4939 		colontmp_ = (NI)0;
4940 		colontmp__2 = (NI)0;
4941 		colontmp_ = ((NI) (i));
4942 		colontmp__2 = (NI)(xlX60gensym306_ - ((NI) 2));
4943 		res = colontmp_;
4944 		{
4945 			while (1) {
4946 				if (!(res <= colontmp__2)) goto LA4;
4947 				jX60gensym306_ = res;
4948 				(*x)->data[jX60gensym306_] = (*x)->data[(NI)(jX60gensym306_ + ((NI) 1))];
4949 				res += ((NI) 1);
4950 			} LA4: ;
4951 		}
4952 	}
4953 	unsureAsgnRef((void**) (&(*x)), (tySequence__qwqHTkRvwhrRyENtudHQ7g*) setLengthSeqV2(&((*x))->Sup, (&NTIseqLtpositionT__qwqHTkRvwhrRyENtudHQ7g_), ((NI) ((NI)(xlX60gensym306_ - ((NI) 1))))));
4954 }
N_NIMCALL(void,deleteEmptyStates__closureiters_1659)4955 N_LIB_PRIVATE N_NIMCALL(void, deleteEmptyStates__closureiters_1659)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx) {
4956 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* goOut;
4957 	tyArray__jlWPjgtbdjE069arIWHC9c9bg T1_;
4958 	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T2_;
4959 	NI iValid;
4960 	NI i_5;
4961 	nimZeroMem((void*)T1_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4962 	nimZeroMem((void*)(&T2_), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
4963 	T1_[0] = newIntLit__lowerings_695((*ctx).g, T2_, IL64(-1));
4964 	goOut = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), T1_, 1);
4965 	(*ctx).exitStateIdx = newState__closureiters_97(ctx, goOut, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
4966 	iValid = ((NI) 0);
4967 	{
4968 		NI i;
4969 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s;
4970 		NI i_2;
4971 		NI L;
4972 		NI T4_;
4973 		i = (NI)0;
4974 		s = NIM_NIL;
4975 		i_2 = ((NI) 0);
4976 		T4_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
4977 		L = T4_;
4978 		{
4979 			while (1) {
4980 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
4981 				if (!(i_2 < L)) goto LA6;
4982 				i = i_2;
4983 				s = (*ctx).states->data[i_2];
4984 				body = skipStmtList__closureiters_1491((&(*ctx)), (*s)._kind_6.sons->data[((NI) 1)]);
4985 				{
4986 					NIM_BOOL T9_;
4987 					NIM_BOOL T10_;
4988 					NI T12_;
4989 					T9_ = (NIM_BOOL)0;
4990 					T10_ = (NIM_BOOL)0;
4991 					T10_ = ((*body).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156));
4992 					if (!(T10_)) goto LA11_;
4993 					T12_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
4994 					T10_ = !((i == (NI)(T12_ - ((NI) 1))));
4995 					LA11_: ;
4996 					T9_ = T10_;
4997 					if (!(T9_)) goto LA13_;
4998 					T9_ = !((i == ((NI) 0)));
4999 					LA13_: ;
5000 					if (!T9_) goto LA14_;
5001 					(*(*s)._kind_6.sons->data[((NI) 0)])._kind_1.intVal = IL64(-1);
5002 				}
5003 				goto LA7_;
5004 				LA14_: ;
5005 				{
5006 					(*(*s)._kind_6.sons->data[((NI) 0)])._kind_1.intVal = ((NI64) (iValid));
5007 					iValid += ((NI) 1);
5008 				}
5009 				LA7_: ;
5010 				i_2 += ((NI) 1);
5011 			} LA6: ;
5012 		}
5013 	}
5014 	{
5015 		NI i_3;
5016 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* s_2;
5017 		NI i_4;
5018 		NI L_2;
5019 		NI T18_;
5020 		i_3 = (NI)0;
5021 		s_2 = NIM_NIL;
5022 		i_4 = ((NI) 0);
5023 		T18_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
5024 		L_2 = T18_;
5025 		{
5026 			while (1) {
5027 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body_2;
5028 				if (!(i_4 < L_2)) goto LA20;
5029 				i_3 = i_4;
5030 				s_2 = (*ctx).states->data[i_4];
5031 				body_2 = skipStmtList__closureiters_1491((&(*ctx)), (*s_2)._kind_6.sons->data[((NI) 1)]);
5032 				{
5033 					NIM_BOOL T23_;
5034 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
5035 					NI excHandlState;
5036 					T23_ = (NIM_BOOL)0;
5037 					T23_ = !(((*body_2).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156)));
5038 					if (T23_) goto LA24_;
5039 					T23_ = (i_3 == ((NI) 0));
5040 					LA24_: ;
5041 					if (!T23_) goto LA25_;
5042 					T27_ = NIM_NIL;
5043 					T27_ = skipThroughEmptyStates__closureiters_1529(ctx, s_2);
5044 					(void)(T27_);
5045 					excHandlState = (*ctx).exceptionTable->data[i_3];
5046 					{
5047 						NI T32_;
5048 						if (!(excHandlState < ((NI) 0))) goto LA30_;
5049 						T32_ = (NI)0;
5050 						T32_ = skipEmptyStates__closureiters_1503((&(*ctx)), ((NI32)-(excHandlState)));
5051 						(*ctx).exceptionTable->data[i_3] = ((NI32)-(T32_));
5052 					}
5053 					goto LA28_;
5054 					LA30_: ;
5055 					{
5056 						if (!!((excHandlState == ((NI) 0)))) goto LA34_;
5057 						(*ctx).exceptionTable->data[i_3] = skipEmptyStates__closureiters_1503((&(*ctx)), excHandlState);
5058 					}
5059 					goto LA28_;
5060 					LA34_: ;
5061 					LA28_: ;
5062 				}
5063 				LA25_: ;
5064 				i_4 += ((NI) 1);
5065 			} LA20: ;
5066 		}
5067 	}
5068 	i_5 = ((NI) 0);
5069 	{
5070 		while (1) {
5071 			NI T38_;
5072 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* fs;
5073 			T38_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
5074 			if (!(i_5 < (NI)(T38_ - ((NI) 1)))) goto LA37;
5075 			fs = skipStmtList__closureiters_1491((&(*ctx)), (*(*ctx).states->data[i_5])._kind_6.sons->data[((NI) 1)]);
5076 			{
5077 				NIM_BOOL T41_;
5078 				T41_ = (NIM_BOOL)0;
5079 				T41_ = ((*fs).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156));
5080 				if (!(T41_)) goto LA42_;
5081 				T41_ = !((i_5 == ((NI) 0)));
5082 				LA42_: ;
5083 				if (!T41_) goto LA43_;
5084 				delete__closureiters_1709((&(*ctx).states), ((NI) (i_5)));
5085 				delete__closureiters_1746((&(*ctx).exceptionTable), ((NI) (i_5)));
5086 			}
5087 			goto LA39_;
5088 			LA43_: ;
5089 			{
5090 				i_5 += ((NI) 1);
5091 			}
5092 			LA39_: ;
5093 		} LA37: ;
5094 	}
5095 }
N_NIMCALL(void,del__closureiters_3571)5096 N_LIB_PRIVATE N_NIMCALL(void, del__closureiters_3571)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, NI i) {
5097 	NI xl;
5098 	NI T1_;
5099 	T1_ = ((*x) ? (*x)->Sup.len : 0);
5100 	xl = (NI)(T1_ - ((NI) 1));
5101 	asgnRef((void**) (&(*x)->data[i]), (*x)->data[xl]);
5102 	unsureAsgnRef((void**) (&(*x)), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*x))->Sup, (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) (xl))));
5103 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newStateAccess__closureiters_35)5104 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStateAccess__closureiters_35)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx) {
5105 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
5106 	result = NIM_NIL;
5107 	{
5108 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T5_;
5109 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
5110 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T7_;
5111 		if (!((*ctx).stateVarSym == 0)) goto LA3_;
5112 		T5_ = NIM_NIL;
5113 		T5_ = getEnvParam__lambdalifting_131((*ctx).fn);
5114 		T6_ = NIM_NIL;
5115 		T6_ = newSymNode__ast_3716(T5_);
5116 		T7_ = NIM_NIL;
5117 		T7_ = getStateField__lambdalifting_4660((*ctx).g, (*ctx).fn);
5118 		result = rawIndirectAccess__lowerings_326(T6_, T7_, (*(*ctx).fn).info);
5119 	}
5120 	goto LA1_;
5121 	LA3_: ;
5122 	{
5123 		result = newSymNode__ast_3716((*ctx).stateVarSym);
5124 	}
5125 	LA1_: ;
5126 	return result;
5127 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newStateAssgn__closureiters_41)5128 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStateAssgn__closureiters_41)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* toValue) {
5129 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
5130 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T1_;
5131 	result = NIM_NIL;
5132 	nimZeroMem((void*)T1_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
5133 	T1_[0] = newStateAccess__closureiters_35(ctx);
5134 	T1_[1] = toValue;
5135 	result = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T1_, 2);
5136 	return result;
5137 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newStateAssgn__closureiters_45)5138 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newStateAssgn__closureiters_45)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, NI stateNo) {
5139 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
5140 	tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q T1_;
5141 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T2_;
5142 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
5143 	result = NIM_NIL;
5144 	nimZeroMem((void*)(&T1_), sizeof(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q));
5145 	T2_ = NIM_NIL;
5146 	T2_ = getSysType__magicsys_60((*ctx).g, T1_, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
5147 	T3_ = NIM_NIL;
5148 	T3_ = newIntTypeNode__ast_3783(((NI64) (stateNo)), T2_);
5149 	result = newStateAssgn__closureiters_41(ctx, T3_);
5150 	return result;
5151 }
N_NIMCALL(NI,stateFromGotoState__closureiters_1375)5152 N_LIB_PRIVATE N_NIMCALL(NI, stateFromGotoState__closureiters_1375)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
5153 	NI result;
5154 	result = (NI)0;
5155 	result = ((NI) ((*(*n)._kind_6.sons->data[((NI) 0)])._kind_1.intVal));
5156 	return result;
5157 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,transformStateAssignments__closureiters_1386)5158 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformStateAssignments__closureiters_1386)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
5159 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
5160 	result = NIM_NIL;
5161 	result = n;
5162 	switch ((*n).kind) {
5163 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115):
5164 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 126):
5165 	{
5166 		{
5167 			NIM_BOOL T4_;
5168 			NI T5_;
5169 			NI T9_;
5170 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
5171 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* retStmt;
5172 			T4_ = (NIM_BOOL)0;
5173 			T5_ = (NI)0;
5174 			T5_ = len__ast_3198(n);
5175 			T4_ = !((T5_ == ((NI) 0)));
5176 			if (!(T4_)) goto LA6_;
5177 			T4_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 104));
5178 			LA6_: ;
5179 			if (!T4_) goto LA7_;
5180 			result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
5181 			T9_ = (NI)0;
5182 			T9_ = stateFromGotoState__closureiters_1375((*n)._kind_6.sons->data[((NI) 1)]);
5183 			T10_ = NIM_NIL;
5184 			T10_ = newStateAssgn__closureiters_45(ctx, T9_);
5185 			add__ast_4797(result, T10_);
5186 			retStmt = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109), (*n).info);
5187 			{
5188 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a;
5189 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* retVal;
5190 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T15_;
5191 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
5192 				if (!!(((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1)))) goto LA13_;
5193 				a = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)]).info);
5194 				retVal = (*(*n)._kind_6.sons->data[((NI) 0)])._kind_6.sons->data[((NI) 0)];
5195 				T15_ = NIM_NIL;
5196 				T15_ = getClosureIterResult__lambdalifting_62((*ctx).g, (*ctx).fn, (*ctx).idgen);
5197 				T16_ = NIM_NIL;
5198 				T16_ = newSymNode__ast_3716(T15_);
5199 				add__ast_4797(a, T16_);
5200 				add__ast_4797(a, retVal);
5201 				add__ast_4797(retStmt, a);
5202 			}
5203 			goto LA11_;
5204 			LA13_: ;
5205 			{
5206 				add__ast_4797(retStmt, (*(*ctx).g).emptyNode);
5207 			}
5208 			LA11_: ;
5209 			add__ast_4797(result, retStmt);
5210 		}
5211 		goto LA2_;
5212 		LA7_: ;
5213 		{
5214 			{
5215 				NI i;
5216 				NI colontmp_;
5217 				NI i_2;
5218 				i = (NI)0;
5219 				colontmp_ = (NI)0;
5220 				colontmp_ = len__ast_3198(n);
5221 				i_2 = ((NI) 0);
5222 				{
5223 					while (1) {
5224 						if (!(i_2 < colontmp_)) goto LA21;
5225 						i = i_2;
5226 						asgnRef((void**) (&(*n)._kind_6.sons->data[i]), transformStateAssignments__closureiters_1386(ctx, (*n)._kind_6.sons->data[i]));
5227 						i_2 += ((NI) 1);
5228 					} LA21: ;
5229 				}
5230 			}
5231 		}
5232 		LA2_: ;
5233 	}
5234 	break;
5235 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
5236 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52):
5237 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 81):
5238 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 83) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84):
5239 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 98):
5240 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 113):
5241 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 122) ... ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 123):
5242 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 125):
5243 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159):
5244 	{
5245 	}
5246 	break;
5247 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109):
5248 	{
5249 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
5250 		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
5251 		T24_ = NIM_NIL;
5252 		T24_ = newStateAssgn__closureiters_45(ctx, ((NI) -1));
5253 		add__ast_4797(result, T24_);
5254 		add__ast_4797(result, n);
5255 	}
5256 	break;
5257 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156):
5258 	{
5259 		NI T26_;
5260 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T27_;
5261 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* breakState;
5262 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
5263 		result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
5264 		T26_ = (NI)0;
5265 		T26_ = stateFromGotoState__closureiters_1375(n);
5266 		T27_ = NIM_NIL;
5267 		T27_ = newStateAssgn__closureiters_45(ctx, T26_);
5268 		add__ast_4797(result, T27_);
5269 		breakState = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 110), (*n).info);
5270 		T28_ = NIM_NIL;
5271 		T28_ = newSymNode__ast_3716((*ctx).stateLoopLabel);
5272 		add__ast_4797(breakState, T28_);
5273 		add__ast_4797(result, breakState);
5274 	}
5275 	break;
5276 	default:
5277 	{
5278 		{
5279 			NI i_3;
5280 			NI colontmp__2;
5281 			NI i_4;
5282 			i_3 = (NI)0;
5283 			colontmp__2 = (NI)0;
5284 			colontmp__2 = len__ast_3198(n);
5285 			i_4 = ((NI) 0);
5286 			{
5287 				while (1) {
5288 					if (!(i_4 < colontmp__2)) goto LA32;
5289 					i_3 = i_4;
5290 					asgnRef((void**) (&(*n)._kind_6.sons->data[i_3]), transformStateAssignments__closureiters_1386(ctx, (*n)._kind_6.sons->data[i_3]));
5291 					i_4 += ((NI) 1);
5292 				} LA32: ;
5293 			}
5294 		}
5295 	}
5296 	break;
5297 	}
5298 	return result;
5299 }
N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g,nextTypeId__ast_3151)5300 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3151)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
5301 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
5302 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
5303 	(*x).typeId_0 += ((NI) 1);
5304 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
5305 	result.module = (*x).module;
5306 	result.item = (*x).typeId_0;
5307 	return result;
5308 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,newArrayType__closureiters_1545)5309 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newArrayType__closureiters_1545)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI n, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner) {
5310 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
5311 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T1_;
5312 	tyObject_TType__facALICuu8zUj0hjvbTLFg* rng;
5313 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T2_;
5314 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T3_;
5315 	result = NIM_NIL;
5316 	T1_ = nextTypeId__ast_3151(idgen);
5317 	result = newType__ast_3896(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16), T1_, owner);
5318 	T2_ = nextTypeId__ast_3151(idgen);
5319 	rng = newType__ast_3896(((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20), T2_, owner);
5320 	nimZeroMem((void*)T3_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
5321 	T3_[0] = newIntLit__lowerings_695(g, (*owner).info, IL64(0));
5322 	T3_[1] = newIntLit__lowerings_695(g, (*owner).info, ((NI64) (n)));
5323 	asgnRef((void**) (&(*rng).n), newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 44), T3_, 2));
5324 	rawAddSon__ast_4288(rng, t, NIM_TRUE);
5325 	rawAddSon__ast_4288(result, rng, NIM_TRUE);
5326 	rawAddSon__ast_4288(result, t, NIM_TRUE);
5327 	return result;
5328 }
N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,createExceptionTable__closureiters_1553)5329 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, createExceptionTable__closureiters_1553)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx) {
5330 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
5331 	NI T1_;
5332 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T2_;
5333 	result = NIM_NIL;
5334 	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 41), (*(*ctx).fn).info);
5335 	T1_ = ((*ctx).exceptionTable ? (*ctx).exceptionTable->Sup.len : 0);
5336 	T2_ = NIM_NIL;
5337 	T2_ = getSysType__magicsys_60((*ctx).g, (*(*ctx).fn).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33));
5338 	asgnRef((void**) (&(*result).typ), newArrayType__closureiters_1545((*ctx).g, T1_, T2_, (*ctx).idgen, (*ctx).fn));
5339 	{
5340 		NI* i;
5341 		NI i_2;
5342 		NI L;
5343 		NI T4_;
5344 		i = (NI*)0;
5345 		i_2 = ((NI) 0);
5346 		T4_ = ((*ctx).exceptionTable ? (*ctx).exceptionTable->Sup.len : 0);
5347 		L = T4_;
5348 		{
5349 			while (1) {
5350 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* elem;
5351 				if (!(i_2 < L)) goto LA6;
5352 				i = (&(*ctx).exceptionTable->data[i_2]);
5353 				elem = newIntNode__ast_3723(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 6), ((NI64) ((*i))));
5354 				asgnRef((void**) (&(*elem).typ), getSysType__magicsys_60((*ctx).g, (*(*ctx).fn).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 33)));
5355 				add__ast_4797(result, elem);
5356 				i_2 += ((NI) 1);
5357 			} LA6: ;
5358 		}
5359 	}
5360 	return result;
5361 }
N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newCatchBody__closureiters_1568)5362 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newCatchBody__closureiters_1568)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
5363 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
5364 	tyObject_TType__facALICuu8zUj0hjvbTLFg* intTyp;
5365 	tyObject_TType__facALICuu8zUj0hjvbTLFg* boolTyp;
5366 	result = NIM_NIL;
5367 	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), info);
5368 	intTyp = getSysType__magicsys_60((*ctx).g, info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
5369 	boolTyp = getSysType__magicsys_60((*ctx).g, info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1));
5370 	{
5371 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* getNextState;
5372 		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T2_;
5373 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
5374 		nimZeroMem((void*)T2_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
5375 		T2_[0] = createExceptionTable__closureiters_1553(ctx);
5376 		T2_[1] = newStateAccess__closureiters_35(ctx);
5377 		getNextState = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), T2_, 2);
5378 		asgnRef((void**) (&(*getNextState).typ), intTyp);
5379 		T3_ = NIM_NIL;
5380 		T3_ = newStateAssgn__closureiters_41(ctx, getNextState);
5381 		add__ast_4797(result, T3_);
5382 	}
5383 	{
5384 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond;
5385 		tyArray__T6RKPw8xfAeNaoei9aZGzXg T5_;
5386 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T6_;
5387 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* raiseStmt;
5388 		tyArray__jlWPjgtbdjE069arIWHC9c9bg T7_;
5389 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifBranch;
5390 		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T8_;
5391 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifStmt;
5392 		tyArray__jlWPjgtbdjE069arIWHC9c9bg T9_;
5393 		nimZeroMem((void*)T5_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
5394 		T6_ = NIM_NIL;
5395 		T6_ = getSysMagic__magicsys_29((*ctx).g, info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_29), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 70));
5396 		T5_[0] = newSymNode__ast_3716(T6_);
5397 		T5_[1] = newStateAccess__closureiters_35(ctx);
5398 		T5_[2] = newIntTypeNode__ast_3783(IL64(0), intTyp);
5399 		cond = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T5_, 3);
5400 		asgnRef((void**) (&(*cond).typ), boolTyp);
5401 		nimZeroMem((void*)T7_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
5402 		T7_[0] = (*(*ctx).g).emptyNode;
5403 		raiseStmt = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 108), T7_, 1);
5404 		nimZeroMem((void*)T8_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
5405 		T8_[0] = cond;
5406 		T8_[1] = raiseStmt;
5407 		ifBranch = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T8_, 2);
5408 		nimZeroMem((void*)T9_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
5409 		T9_[0] = ifBranch;
5410 		ifStmt = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T9_, 1);
5411 		add__ast_4797(result, ifStmt);
5412 	}
5413 	{
5414 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond_2;
5415 		tyArray__T6RKPw8xfAeNaoei9aZGzXg T11_;
5416 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T12_;
5417 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* asgn;
5418 		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T13_;
5419 		nimZeroMem((void*)T11_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
5420 		T12_ = NIM_NIL;
5421 		T12_ = getSysMagic__magicsys_29((*ctx).g, info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_43), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72));
5422 		T11_[0] = newSymNode__ast_3716(T12_);
5423 		T11_[1] = newIntTypeNode__ast_3783(IL64(0), intTyp);
5424 		T11_[2] = newStateAccess__closureiters_35(ctx);
5425 		cond_2 = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T11_, 3);
5426 		asgnRef((void**) (&(*cond_2).typ), boolTyp);
5427 		nimZeroMem((void*)T13_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
5428 		T13_[0] = newUnrollFinallyAccess__closureiters_84(ctx, info);
5429 		T13_[1] = cond_2;
5430 		asgn = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T13_, 2);
5431 		add__ast_4797(result, asgn);
5432 	}
5433 	{
5434 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond_3;
5435 		tyArray__T6RKPw8xfAeNaoei9aZGzXg T15_;
5436 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T16_;
5437 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* negateState;
5438 		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T17_;
5439 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T18_;
5440 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifBranch_2;
5441 		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T19_;
5442 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ifStmt_2;
5443 		tyArray__jlWPjgtbdjE069arIWHC9c9bg T20_;
5444 		nimZeroMem((void*)T15_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
5445 		T16_ = NIM_NIL;
5446 		T16_ = getSysMagic__magicsys_29((*ctx).g, info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_43), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72));
5447 		T15_[0] = newSymNode__ast_3716(T16_);
5448 		T15_[1] = newStateAccess__closureiters_35(ctx);
5449 		T15_[2] = newIntTypeNode__ast_3783(IL64(0), intTyp);
5450 		cond_3 = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T15_, 3);
5451 		asgnRef((void**) (&(*cond_3).typ), boolTyp);
5452 		nimZeroMem((void*)T17_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
5453 		T18_ = NIM_NIL;
5454 		T18_ = getSysMagic__magicsys_29((*ctx).g, info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_44), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 93));
5455 		T17_[0] = newSymNode__ast_3716(T18_);
5456 		T17_[1] = newStateAccess__closureiters_35(ctx);
5457 		negateState = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T17_, 2);
5458 		asgnRef((void**) (&(*negateState).typ), intTyp);
5459 		nimZeroMem((void*)T19_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
5460 		T19_[0] = cond_3;
5461 		T19_[1] = newStateAssgn__closureiters_41(ctx, negateState);
5462 		ifBranch_2 = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T19_, 2);
5463 		nimZeroMem((void*)T20_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
5464 		T20_[0] = ifBranch_2;
5465 		ifStmt_2 = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T20_, 1);
5466 		add__ast_4797(result, ifStmt_2);
5467 	}
5468 	{
5469 		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T22_;
5470 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
5471 		nimZeroMem((void*)T22_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
5472 		T22_[0] = newCurExcAccess__closureiters_91(ctx);
5473 		T22_[1] = callCodegenProc__lowerings_635((*ctx).g, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_24), unknownLineInfo__lineinfos_280, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
5474 		T23_ = NIM_NIL;
5475 		T23_ = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), T22_, 2);
5476 		add__ast_4797(result, T23_);
5477 	}
5478 	return result;
5479 }
N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,wrapIntoTryExcept__closureiters_1605)5480 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, wrapIntoTryExcept__closureiters_1605)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
5481 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
5482 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* setupExc;
5483 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T1_;
5484 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T2_;
5485 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tryBody;
5486 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T3_;
5487 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* exceptBranch;
5488 	tyArray__jlWPjgtbdjE069arIWHC9c9bg T4_;
5489 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T5_;
5490 	result = NIM_NIL;
5491 	nimZeroMem((void*)T1_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
5492 	T2_ = NIM_NIL;
5493 	T2_ = getCompilerProc__magicsys_145((*ctx).g, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_30));
5494 	T1_[0] = newSymNode__ast_3716(T2_);
5495 	T1_[1] = newCurExcAccess__closureiters_91(ctx);
5496 	setupExc = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T1_, 2);
5497 	nimZeroMem((void*)T3_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
5498 	T3_[0] = setupExc;
5499 	T3_[1] = n;
5500 	tryBody = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T3_, 2);
5501 	nimZeroMem((void*)T4_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
5502 	T4_[0] = newCatchBody__closureiters_1568(ctx, (*(*ctx).fn).info);
5503 	exceptBranch = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 87), T4_, 1);
5504 	nimZeroMem((void*)T5_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
5505 	T5_[0] = tryBody;
5506 	T5_[1] = exceptBranch;
5507 	result = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 106), T5_, 2);
5508 	return result;
5509 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,wrapIntoStateLoop__closureiters_1612)5510 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, wrapIntoStateLoop__closureiters_1612)(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A* ctx, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
5511 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
5512 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* loopBody;
5513 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T1_;
5514 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T2_;
5515 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* localVars;
5516 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* blockStmt;
5517 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
5518 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gs;
5519 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
5520 	NI T14_;
5521 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
5522 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* blockBody;
5523 	tyArray__T6RKPw8xfAeNaoei9aZGzXg T16_;
5524 	result = NIM_NIL;
5525 	loopBody = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
5526 	nimZeroMem((void*)T1_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
5527 	T2_ = NIM_NIL;
5528 	T2_ = getSysSym__magicsys_16((*ctx).g, (*n).info, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_18));
5529 	T1_[0] = newSymNode__ast_3716(T2_);
5530 	T1_[1] = loopBody;
5531 	result = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96), T1_, 2);
5532 	(*result).info = (*n).info;
5533 	localVars = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n).info);
5534 	{
5535 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* varSect;
5536 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
5537 		if (!!(((*ctx).stateVarSym == 0))) goto LA5_;
5538 		varSect = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*n).info);
5539 		T7_ = NIM_NIL;
5540 		T7_ = newSymNode__ast_3716((*ctx).stateVarSym);
5541 		addVar__lowerings_63(varSect, T7_);
5542 		add__ast_4797(localVars, varSect);
5543 		{
5544 			if (!!(((*ctx).tempVars == 0))) goto LA10_;
5545 			add__ast_4797(localVars, (*ctx).tempVars);
5546 		}
5547 		LA10_: ;
5548 	}
5549 	LA5_: ;
5550 	blockStmt = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 112), (*n).info);
5551 	T12_ = NIM_NIL;
5552 	T12_ = newSymNode__ast_3716((*ctx).stateLoopLabel);
5553 	add__ast_4797(blockStmt, T12_);
5554 	gs = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), (*n).info);
5555 	T13_ = NIM_NIL;
5556 	T13_ = newStateAccess__closureiters_35(ctx);
5557 	add__ast_4797(gs, T13_);
5558 	T14_ = ((*ctx).states ? (*ctx).states->Sup.len : 0);
5559 	T15_ = NIM_NIL;
5560 	T15_ = newIntLit__lowerings_695((*ctx).g, (*n).info, ((NI64) ((NI)(T14_ - ((NI) 1)))));
5561 	add__ast_4797(gs, T15_);
5562 	nimZeroMem((void*)T16_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
5563 	T16_[0] = gs;
5564 	T16_[1] = localVars;
5565 	T16_[2] = n;
5566 	blockBody = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T16_, 3);
5567 	{
5568 		if (!(*ctx).hasExceptions) goto LA19_;
5569 		blockBody = wrapIntoTryExcept__closureiters_1605(ctx, blockBody);
5570 	}
5571 	LA19_: ;
5572 	add__ast_4797(blockStmt, blockBody);
5573 	add__ast_4797(loopBody, blockStmt);
5574 	return result;
5575 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,transformClosureIterator__closureiters_3541)5576 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, transformClosureIterator__closureiters_3541)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
5577 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
5578 	tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A ctx;
5579 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T8_;
5580 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T9_;
5581 	tyObject_PreprocessContext__ATjkivkWYrBstrMNxiy9cNw pc;
5582 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n_2;
5583 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
5584 	NI T11_;
5585 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* gotoOut;
5586 	tyArray__jlWPjgtbdjE069arIWHC9c9bg T12_;
5587 	NIM_BOOL ns;
5588 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T18_;
5589 	result = NIM_NIL;
5590 	nimZeroMem((void*)(&ctx), sizeof(tyObject_Ctx__Sws9awoFPhDR7PA2lS1LQ5A));
5591 	ctx.g = g;
5592 	ctx.fn = fn;
5593 	ctx.idgen = idgen;
5594 	{
5595 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T3_;
5596 		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T6_;
5597 		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T7_;
5598 		T3_ = NIM_NIL;
5599 		T3_ = getEnvParam__lambdalifting_131(fn);
5600 		if (!(T3_ == 0)) goto LA4_;
5601 		T6_ = NIM_NIL;
5602 		T6_ = getIdent__idents_143((*ctx.g).cache, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_2));
5603 		T7_ = nextSymId__ast_3132(idgen);
5604 		ctx.stateVarSym = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8), T6_, T7_, fn, (*fn).info, 0);
5605 		asgnRef((void**) (&(*ctx.stateVarSym).typ), createClosureIterStateType__lambdalifting_33(g, fn, idgen));
5606 	}
5607 	LA4_: ;
5608 	T8_ = NIM_NIL;
5609 	T8_ = getIdent__idents_143((*ctx.g).cache, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_3));
5610 	T9_ = nextSymId__ast_3132(idgen);
5611 	ctx.stateLoopLabel = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 22), T8_, T9_, fn, (*fn).info, 0);
5612 	nimZeroMem((void*)(&pc), sizeof(tyObject_PreprocessContext__ATjkivkWYrBstrMNxiy9cNw));
5613 	nimZeroMem((void*)(&pc), sizeof(tyObject_PreprocessContext__ATjkivkWYrBstrMNxiy9cNw));
5614 	pc.finallys = NIM_NIL;
5615 	pc.config = (*g).config;
5616 	pc.idgen = idgen;
5617 	T10_ = NIM_NIL;
5618 	T10_ = toStmtList__closureiters_136(n);
5619 	n_2 = preprocess__closureiters_3362((&pc), T10_);
5620 	T11_ = (NI)0;
5621 	T11_ = newState__closureiters_97((&ctx), n_2, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
5622 	(void)(T11_);
5623 	nimZeroMem((void*)T12_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
5624 	T12_[0] = newIntLit__lowerings_695(g, (*n_2).info, IL64(-1));
5625 	gotoOut = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 156), T12_, 1);
5626 	ns = NIM_FALSE;
5627 	n_2 = lowerStmtListExprs__closureiters_478((&ctx), n_2, (&ns));
5628 	{
5629 		NIM_BOOL T15_;
5630 		T15_ = (NIM_BOOL)0;
5631 		T15_ = hasYieldsInExpressions__closureiters_371(n_2);
5632 		if (!T15_) goto LA16_;
5633 		internalErrorImpl__msgs_1431((*ctx.g).config, unknownLineInfo__lineinfos_280, ((NimStringDesc*) &TM__slVvvIjx75ivXdMpHiE9c9aQ_19), TM__slVvvIjx75ivXdMpHiE9c9aQ_20);
5634 	}
5635 	LA16_: ;
5636 	T18_ = NIM_NIL;
5637 	T18_ = transformClosureIteratorBody__closureiters_1173((&ctx), n_2, gotoOut);
5638 	(void)(T18_);
5639 	deleteEmptyStates__closureiters_1659((&ctx));
5640 	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*n_2).info);
5641 	{
5642 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** s;
5643 		NI i;
5644 		NI L;
5645 		NI T20_;
5646 		s = (tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw**)0;
5647 		i = ((NI) 0);
5648 		T20_ = (ctx.states ? ctx.states->Sup.len : 0);
5649 		L = T20_;
5650 		{
5651 			while (1) {
5652 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body;
5653 				if (!(i < L)) goto LA22;
5654 				s = &ctx.states->data[i];
5655 				body = (*(*s))._kind_6.sons->data[((NI) 1)];
5656 				del__closureiters_3571((&(*(*s))._kind_6.sons), ((NI) 1));
5657 				add__ast_4797(result, (*s));
5658 				add__ast_4797(result, body);
5659 				i += ((NI) 1);
5660 			} LA22: ;
5661 		}
5662 	}
5663 	result = transformStateAssignments__closureiters_1386((&ctx), result);
5664 	result = wrapIntoStateLoop__closureiters_1612((&ctx), result);
5665 	return result;
5666 }
N_NIMCALL(void,compiler_closureitersDatInit000)5667 N_LIB_PRIVATE N_NIMCALL(void, compiler_closureitersDatInit000)(void) {
5668 static TNimNode* TM__slVvvIjx75ivXdMpHiE9c9aQ_4_3[3];
5669 static TNimNode TM__slVvvIjx75ivXdMpHiE9c9aQ_0[4];
5670 NTIkeyvaluepair__O3AtiO8fwKWfdl6NGmuzhw_.size = sizeof(tyTuple__O3AtiO8fwKWfdl6NGmuzhw);
5671 NTIkeyvaluepair__O3AtiO8fwKWfdl6NGmuzhw_.align = NIM_ALIGNOF(tyTuple__O3AtiO8fwKWfdl6NGmuzhw);
5672 NTIkeyvaluepair__O3AtiO8fwKWfdl6NGmuzhw_.kind = 18;
5673 NTIkeyvaluepair__O3AtiO8fwKWfdl6NGmuzhw_.base = 0;
5674 TM__slVvvIjx75ivXdMpHiE9c9aQ_4_3[0] = &TM__slVvvIjx75ivXdMpHiE9c9aQ_0[1];
5675 TM__slVvvIjx75ivXdMpHiE9c9aQ_0[1].kind = 1;
5676 TM__slVvvIjx75ivXdMpHiE9c9aQ_0[1].offset = offsetof(tyTuple__O3AtiO8fwKWfdl6NGmuzhw, Field0);
5677 TM__slVvvIjx75ivXdMpHiE9c9aQ_0[1].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
5678 TM__slVvvIjx75ivXdMpHiE9c9aQ_0[1].name = "Field0";
5679 TM__slVvvIjx75ivXdMpHiE9c9aQ_4_3[1] = &TM__slVvvIjx75ivXdMpHiE9c9aQ_0[2];
5680 TM__slVvvIjx75ivXdMpHiE9c9aQ_0[2].kind = 1;
5681 TM__slVvvIjx75ivXdMpHiE9c9aQ_0[2].offset = offsetof(tyTuple__O3AtiO8fwKWfdl6NGmuzhw, Field1);
5682 TM__slVvvIjx75ivXdMpHiE9c9aQ_0[2].typ = (&NTIint__rR5Bzr1D5krxoo1NcNyeMA_);
5683 TM__slVvvIjx75ivXdMpHiE9c9aQ_0[2].name = "Field1";
5684 TM__slVvvIjx75ivXdMpHiE9c9aQ_4_3[2] = &TM__slVvvIjx75ivXdMpHiE9c9aQ_0[3];
5685 TM__slVvvIjx75ivXdMpHiE9c9aQ_0[3].kind = 1;
5686 TM__slVvvIjx75ivXdMpHiE9c9aQ_0[3].offset = offsetof(tyTuple__O3AtiO8fwKWfdl6NGmuzhw, Field2);
5687 TM__slVvvIjx75ivXdMpHiE9c9aQ_0[3].typ = (&NTIpsym__dG2QVH5Z69aMUY38zTqWxaA_);
5688 TM__slVvvIjx75ivXdMpHiE9c9aQ_0[3].name = "Field2";
5689 TM__slVvvIjx75ivXdMpHiE9c9aQ_0[0].len = 3; TM__slVvvIjx75ivXdMpHiE9c9aQ_0[0].kind = 2; TM__slVvvIjx75ivXdMpHiE9c9aQ_0[0].sons = &TM__slVvvIjx75ivXdMpHiE9c9aQ_4_3[0];
5690 NTIkeyvaluepair__O3AtiO8fwKWfdl6NGmuzhw_.node = &TM__slVvvIjx75ivXdMpHiE9c9aQ_0[0];
5691 NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_.size = sizeof(tySequence__gVogYzwlGNrCaz6jQnXRzA*);
5692 NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_.align = NIM_ALIGNOF(tySequence__gVogYzwlGNrCaz6jQnXRzA*);
5693 NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_.kind = 24;
5694 NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_.base = (&NTIkeyvaluepair__O3AtiO8fwKWfdl6NGmuzhw_);
5695 NTIkeyvaluepairseq__gVogYzwlGNrCaz6jQnXRzA_.marker = Marker_tySequence__gVogYzwlGNrCaz6jQnXRzA;
5696 }
5697 
5698