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_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ;
22 typedef struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug;
23 typedef struct tyObject_TType__facALICuu8zUj0hjvbTLFg tyObject_TType__facALICuu8zUj0hjvbTLFg;
24 typedef struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q;
25 typedef struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q;
26 typedef struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w;
27 typedef struct RootObj RootObj;
28 typedef struct TNimType TNimType;
29 typedef struct TNimNode TNimNode;
30 typedef struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g;
31 typedef struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A;
32 typedef struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw;
33 typedef struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ;
34 typedef struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA;
35 typedef struct tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA;
36 typedef struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw tyObject_Table__Ue6w4c82v7gc7t2qntTbAw;
37 typedef struct tySequence__1U9bG8RcAedEeYkQLZjVFKA tySequence__1U9bG8RcAedEeYkQLZjVFKA;
38 typedef struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ tyTuple__3i6hlQmqrn6m7tuVN8FHjQ;
39 typedef struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ tySequence__4mZLwkxT8rbt9bf3wXrXYNQ;
40 typedef struct tySequence__rQHmYk1HzcwNxKBymIFHpA tySequence__rQHmYk1HzcwNxKBymIFHpA;
41 typedef struct tySequence__XMM60DtBsc6xYsIpNANkrA tySequence__XMM60DtBsc6xYsIpNANkrA;
42 typedef struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw;
43 typedef struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg;
44 typedef struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg;
45 typedef struct tySequence__mWRMiYLthG9coLjkbElCxkw tySequence__mWRMiYLthG9coLjkbElCxkw;
46 typedef struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyObject_Table__iowAVDkco3qpbEH0z8OmkQ;
47 typedef struct tySequence__bTDCDwD2P7TodzbAefLcSw tySequence__bTDCDwD2P7TodzbAefLcSw;
48 typedef struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w;
49 typedef struct tySequence__3MPVXAHA08SszBrU4ffqEg tySequence__3MPVXAHA08SszBrU4ffqEg;
50 typedef struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw tyObject_Table__KcymdZjUsmGSK8BxmvoJgw;
51 typedef struct tySequence__YCf5zJHm4JI06qpmKwPUWg tySequence__YCf5zJHm4JI06qpmKwPUWg;
52 typedef struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA;
53 typedef struct tySequence__7lEisrXlQEzwtUKW5pzRCw tySequence__7lEisrXlQEzwtUKW5pzRCw;
54 typedef struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ;
55 typedef struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA;
56 typedef struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ tySequence__eHqUwlHGGaPw0TDPDeL79cQ;
57 typedef struct tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA;
58 typedef struct tySequence__61s9cbAniKuBrdHwBhMDfQg tySequence__61s9cbAniKuBrdHwBhMDfQg;
59 typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA;
60 typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA;
61 typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w;
62 typedef struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA tyObject_Table__fdKWDDO1P17zvuQPReVgRA;
63 typedef struct tySequence__fdmz6VkIf1ewwrssKYqRFg tySequence__fdmz6VkIf1ewwrssKYqRFg;
64 typedef struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ;
65 typedef struct tySequence__kxu4GK0onha2t9bo86mdVAg tySequence__kxu4GK0onha2t9bo86mdVAg;
66 typedef struct tySequence__48JTohSgTy339bRxHzUD8KA tySequence__48JTohSgTy339bRxHzUD8KA;
67 typedef struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw;
68 typedef struct tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw;
69 typedef struct tySequence__s9byh6WFJ16lPMcmqdaMTHA tySequence__s9byh6WFJ16lPMcmqdaMTHA;
70 typedef struct tyObject_Table__G1v8c16HePOldLeucwe05Q tyObject_Table__G1v8c16HePOldLeucwe05Q;
71 typedef struct tySequence__fIB1rTQ55aFonoft9a9bmljQ tySequence__fIB1rTQ55aFonoft9a9bmljQ;
72 typedef struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA;
73 typedef struct tySequence__23SMqauuRsbDANhthj9bWlA tySequence__23SMqauuRsbDANhthj9bWlA;
74 typedef struct tyObject_Table__NttoEzoiq5CiphZe81oadg tyObject_Table__NttoEzoiq5CiphZe81oadg;
75 typedef struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA tySequence__squ9b9bUH4OLHf6cEMrt6hVA;
76 typedef struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg tyObject_Table__nagDFX4QHx0s6Fvma9blmSg;
77 typedef struct tySequence__pHNq3oXj9av2sEUdqaqeZjw tySequence__pHNq3oXj9av2sEUdqaqeZjw;
78 typedef struct tySequence__MAQKEADohlpnXTModtugbQ tySequence__MAQKEADohlpnXTModtugbQ;
79 typedef struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ;
80 typedef struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA;
81 typedef struct TGenericSeq TGenericSeq;
82 typedef struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g;
83 typedef struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w;
84 typedef struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ;
85 typedef struct tyObject_GcStack__7fytPA5bBsob6See21YMRA tyObject_GcStack__7fytPA5bBsob6See21YMRA;
86 typedef struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg;
87 typedef struct tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ;
88 typedef struct tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg;
89 typedef struct tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw;
90 typedef struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA;
91 typedef struct tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw;
92 typedef struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw;
93 typedef struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg;
94 typedef struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyTuple__ujsjpB2O9cjj3uDHsXbnSzg;
95 typedef struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg;
96 typedef struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ;
97 typedef struct tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg;
98 typedef struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw tyObject_Target__9abOl5DLX8suLujOaHSvGzw;
99 typedef struct NimStringDesc NimStringDesc;
100 typedef struct tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg;
101 typedef struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A;
102 typedef struct tySequence__tNFrR3kRuS1FSwuiLGoSSA tySequence__tNFrR3kRuS1FSwuiLGoSSA;
103 typedef struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ tySequence__Zi9cGbCWofbtABoHJ5RbLNQ;
104 typedef struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg;
105 typedef struct tySequence__4eRCaZmrYLLw2k30GPTiMw tySequence__4eRCaZmrYLLw2k30GPTiMw;
106 typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
107 typedef struct tyTuple__47w2DboNEPf69aPgubZdd7Q tyTuple__47w2DboNEPf69aPgubZdd7Q;
108 typedef struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw tySequence__pK3qSsBZwdXd6qyUMkd5Jw;
109 typedef struct tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ;
110 typedef struct tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig;
111 typedef struct tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA;
112 typedef struct tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA;
113 typedef struct tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA;
114 typedef struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w;
115 typedef struct tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw;
116 typedef struct tySequence__eiMlYcU7NrAOGD2H36QOOQ tySequence__eiMlYcU7NrAOGD2H36QOOQ;
117 typedef struct tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ;
118 typedef struct tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg;
119 typedef struct tySequence__oYkV9aFZe0MXcEAprJaOUsA tySequence__oYkV9aFZe0MXcEAprJaOUsA;
120 typedef struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q;
121 typedef struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA tySequence__Mh9agqM29bm9aP5AUL1x7dZGA;
122 typedef struct tySequence__arD7Tw6eD6lvOczWZl9buNg tySequence__arD7Tw6eD6lvOczWZl9buNg;
123 typedef struct tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw;
124 typedef struct tySequence__jWKvSdankQPoT5bw9cBU9aiw tySequence__jWKvSdankQPoT5bw9cBU9aiw;
125 typedef struct tySequence__xSqu3cxq5WeFlOO3YgE6yA tySequence__xSqu3cxq5WeFlOO3YgE6yA;
126 typedef struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w;
127 typedef struct tySequence__Bis5AbpONWcIRrPyPJS8Yw tySequence__Bis5AbpONWcIRrPyPJS8Yw;
128 typedef struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w;
129 typedef struct tySequence__E8pi9b5QNahsURYzXMjh3qw tySequence__E8pi9b5QNahsURYzXMjh3qw;
130 typedef struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ;
131 typedef struct tySequence__Hkw5zrAn53wlKDHdJF1GFA tySequence__Hkw5zrAn53wlKDHdJF1GFA;
132 typedef struct tyTuple__kN8up2W6YKc5YA9avn5mV5w tyTuple__kN8up2W6YKc5YA9avn5mV5w;
133 typedef struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA tyObject_Int128__9a9axPfb75jdWY25AamJewkA;
134 typedef struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA;
135 typedef struct tySequence__vv5mGmK03BCr5e3LTZA5Hw tySequence__vv5mGmK03BCr5e3LTZA5Hw;
136 typedef struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w;
137 typedef struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ;
138 typedef struct tySequence__PXIzfWocnrafGz5p3CP5LA tySequence__PXIzfWocnrafGz5p3CP5LA;
139 typedef struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA tySequence__9bAGqSvkAaFL9bWjsEPslrFA;
140 typedef struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw;
141 typedef struct tySequence__29bS0n2QNyO1R7e0qMMOvLA tySequence__29bS0n2QNyO1R7e0qMMOvLA;
142 typedef struct tySequence__b89aLriiJnVTD186H6zNIgg tySequence__b89aLriiJnVTD186H6zNIgg;
143 typedef struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg tySequence__REuPuHuSlOkZ0Q5oqzDrQg;
144 typedef struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA tySequence__I9aQmO9asXXWJ58UI9c8BCSzA;
145 typedef struct tySequence__NyaOkf8ZwxP6rkRF5TOkew tySequence__NyaOkf8ZwxP6rkRF5TOkew;
146 typedef struct tySequence__L9bOt8CaTEmIjgtuZvp6syg tySequence__L9bOt8CaTEmIjgtuZvp6syg;
147 typedef struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ tySequence__im8UB2GsZvUaQ4a1wKGWhQ;
148 typedef struct tySequence__xxnXDLpoqBo8zJzP9b1073g tySequence__xxnXDLpoqBo8zJzP9b1073g;
149 typedef struct tySequence__DfmUmNgVGnYaiV1I6227tw tySequence__DfmUmNgVGnYaiV1I6227tw;
150 typedef struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA tySequence__t8Uv4lEJ4lkuECvP9c6JMhA;
151 typedef struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg;
152 typedef struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ;
153 typedef struct tySequence__IHUFRsFxZNv7YydiUO2esQ tySequence__IHUFRsFxZNv7YydiUO2esQ;
154 typedef struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g tyObject_Table__CE4eiu6FavV1vmUiTXQ70g;
155 typedef struct tySequence__9bT7o0CflHuiE4VhmtqBPCw tySequence__9bT7o0CflHuiE4VhmtqBPCw;
156 typedef struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw;
157 typedef struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q tyObject_Table__TRm6MPqklA8EYBmBMY117Q;
158 typedef struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ tySequence__9cnx3zXnWzeclW8Ko4oUgAQ;
159 typedef struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ;
160 typedef struct tySequence__O5RcspOP32YJ4YtU5ppxxA tySequence__O5RcspOP32YJ4YtU5ppxxA;
161 typedef struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg;
162 typedef struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ;
163 typedef struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ;
164 typedef struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg tyTuple__o67sDX0wYbEuhI9cJYAbDtg;
165 typedef struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA;
166 typedef struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg;
167 typedef struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA tySequence__ipEvhpHAmm8ZCn9bZAOdNYA;
168 typedef struct tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA;
169 typedef struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q tyTuple__9aNnDWBFMF44sfFinBpMT4Q;
170 typedef struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg;
171 typedef struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g tySequence__159bHWBGAOOs6U7OZ9cQlO0g;
172 typedef struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ tyTuple__VrD6plbUKJjYKM0lCr3hGQ;
173 typedef struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA;
174 typedef struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA tyTuple__1ZbjBgxAbnye0IFMZ6w4OA;
175 typedef struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw tyTuple__xYhUhS7X82rKTqbT9bRfCnw;
176 typedef struct tyTuple__rplX06U9bjhu9asm5pWdgqsA tyTuple__rplX06U9bjhu9asm5pWdgqsA;
177 typedef struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q;
178 typedef struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ tyTuple__xDU9bZmv1ZbZkJDaATBekIQ;
179 typedef struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A;
180 typedef struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw tyTuple__OJFzEczluV8Jmo9bRpBfkzw;
181 typedef struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw;
182 typedef struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg tyTuple__F3gkSrMB1qp2Tvf9bixVXwg;
183 typedef struct tyTuple__wcNatyuf8WOqAhGLhSvgiw tyTuple__wcNatyuf8WOqAhGLhSvgiw;
184 typedef struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg;
185 typedef struct tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g;
186 typedef struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ;
187 typedef struct tyTuple__z822nu9bFF1AlQnLrHjdwpA tyTuple__z822nu9bFF1AlQnLrHjdwpA;
188 typedef struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw;
189 typedef struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw tyTuple__QeWl6B6ffS4pU6WWrtcrDw;
190 typedef struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg;
191 typedef struct tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ;
192 typedef struct tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w;
193 typedef struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg;
194 typedef struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ;
195 typedef struct tyTuple__KNXySARiHvEh2wA9asnyYmw tyTuple__KNXySARiHvEh2wA9asnyYmw;
196 typedef struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ tyTuple__NAaJgGVgNmlGoqmiWxdOHQ;
197 typedef struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ;
198 typedef struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag tyTuple__Y6Ewh3MCxsjd1bsriN6Gag;
199 typedef struct tySequence__vGU8AyGT6KxtLJwEg0BpNw tySequence__vGU8AyGT6KxtLJwEg0BpNw;
200 typedef struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw tyTuple__KvKIqRIx9anKcDMu8DPSkHw;
201 typedef struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q tyTuple__0q9cmhneJEKnQERTpXXdz6Q;
202 typedef struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow;
203 typedef struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg;
204 typedef struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ;
205 typedef struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA tyTuple__Q7r9caOmeWqQGZCIBHhGRUA;
206 typedef struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg;
207 typedef struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw tyTuple__XyJ8LOAZzVVXSsmt09b8uWw;
208 typedef struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA;
209 typedef struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw tySequence__vC9cvg0R8tfBaOXXi3sfMzw;
210 typedef struct tyTuple__9aoobCDZB4x41HJSOmh0mwA tyTuple__9aoobCDZB4x41HJSOmh0mwA;
211 typedef struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA tyTuple__g0Q6Qx15nK53ce9aLo7YyrA;
212 typedef struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw;
213 typedef struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw;
214 typedef struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA;
215 typedef struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ;
216 typedef struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA tyTuple__UvldbCB6B9ayi9bGYW7vJNLA;
217 struct tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q {
218 NU16 line;
219 NI16 col;
220 NI32 fileIndex;
221 };
222 typedef NU8 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A;
223 typedef NU8 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ;
224 typedef N_NIMCALL_PTR(void, tyProc__ojoeKfW4VYIm36I9cpDTQIg) (void* p, NI op);
225 typedef N_NIMCALL_PTR(void*, tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ) (void* p);
226 struct TNimType {
227 NI size;
228 NI align;
229 tyEnum_TNimKind__jIBKr1ejBgsfM33Kxw4j7A kind;
230 tySet_tyEnum_TNimTypeFlag__v8QUszD1sWlSIWZz7mC4bQ flags;
231 TNimType* base;
232 TNimNode* node;
233 void* finalizer;
234 tyProc__ojoeKfW4VYIm36I9cpDTQIg marker;
235 tyProc__WSm2xU5ARYv9aAR4l0z9c9auQ deepcopy;
236 };
237 struct RootObj {
238 TNimType* m_type;
239 };
240 struct tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g {
241 NI32 module;
242 NI32 item;
243 };
244 struct tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w {
245   RootObj Sup;
246 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g itemId;
247 };
248 typedef NU8 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag;
249 typedef NU8 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA;
250 typedef NU64 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
251 typedef NU8 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg;
252 typedef NU8 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw;
253 typedef NU16 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA;
254 struct tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA {
255 tyEnum_TLocKind__O7PRFZKuiBBWbku09cayVBg k;
256 tyEnum_TStorageLoc__JK9cKMX3XnqHaUky9b6gkGEw storage;
257 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA flags;
258 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lode;
259 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* r;
260 };
261 struct tyObject_TType__facALICuu8zUj0hjvbTLFg {
262   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
263 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
264 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
265 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
266 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* sons;
267 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
268 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
269 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
270 NI64 size;
271 NI16 align;
272 NI16 paddingAtEnd;
273 NI16 lockLevel;
274 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
275 tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst;
276 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g uniqueId;
277 };
278 typedef NU8 tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw;
279 typedef NU8 tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag[9];
280 typedef NU8 tyArray__qtqsWM5aXmcpMIVmvq3kAA[16];
281 typedef NU8 tySet_tyEnum_ConsiderFlag__9a9az8WnKmq9bvt8EXoSUES7g;
282 struct tyObject_Table__Ue6w4c82v7gc7t2qntTbAw {
283 tySequence__1U9bG8RcAedEeYkQLZjVFKA* data;
284 NI counter;
285 };
286 struct tyTuple__3i6hlQmqrn6m7tuVN8FHjQ {
287 NI Field0;
288 tyArray__qtqsWM5aXmcpMIVmvq3kAA Field1;
289 tyObject_TType__facALICuu8zUj0hjvbTLFg* Field2;
290 };
291 struct tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw {
292 tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg* data;
293 NI counter;
294 };
295 struct tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg {
296 tySequence__mWRMiYLthG9coLjkbElCxkw* data;
297 NI counter;
298 };
299 struct tyObject_Table__iowAVDkco3qpbEH0z8OmkQ {
300 tySequence__bTDCDwD2P7TodzbAefLcSw* data;
301 NI counter;
302 };
303 typedef tyObject_Table__iowAVDkco3qpbEH0z8OmkQ tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ[5];
304 struct tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w {
305 tySequence__3MPVXAHA08SszBrU4ffqEg* data;
306 NI counter;
307 };
308 struct tyObject_Table__KcymdZjUsmGSK8BxmvoJgw {
309 tySequence__YCf5zJHm4JI06qpmKwPUWg* data;
310 NI counter;
311 };
312 struct tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA {
313 tySequence__7lEisrXlQEzwtUKW5pzRCw* data;
314 NI counter;
315 };
316 typedef NU8 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g;
317 typedef NU8 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw;
318 typedef NU8 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA;
319 typedef NU32 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
320 typedef NU64 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
321 struct tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ {
322 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
323 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
324 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
325 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
326 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
327 };
328 struct tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA {
329 NI counter;
330 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* data;
331 };
332 struct tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA {
333 tySequence__61s9cbAniKuBrdHwBhMDfQg* data;
334 NI counter;
335 };
336 typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34];
337 struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA {
338 NI elems;
339 NI counter;
340 NI max;
341 tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head;
342 tySequence__Bre9bNyuQOg1EJKitjSzn8w* data;
343 tyArray__emiAJ8okywrJw7ZHLzlXbQ a;
344 };
345 struct tyObject_Table__fdKWDDO1P17zvuQPReVgRA {
346 tySequence__fdmz6VkIf1ewwrssKYqRFg* data;
347 NI counter;
348 };
349 struct tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ {
350 tySequence__kxu4GK0onha2t9bo86mdVAg* data;
351 NI counter;
352 };
353 typedef struct {
354 N_NIMCALL_PTR(NIM_BOOL, ClP_0) (void* ClE_0);
355 void* ClE_0;
356 } tyProc__In3g79a0qTcRmbTbJp9ba9ctg;
357 typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__9bjuenwQUcqO3lbmS2wX7uA[65];
358 struct tyObject_Table__G1v8c16HePOldLeucwe05Q {
359 tySequence__fIB1rTQ55aFonoft9a9bmljQ* data;
360 NI counter;
361 };
362 typedef N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, tyProc__VHDwJFdIqpwtpUGuxiXUwg) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
363 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__mjUN9alLJ31lnSKkUsuyWMw) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m, NI32 fileIdx);
364 struct tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA {
365 tySequence__23SMqauuRsbDANhthj9bWlA* data;
366 NI counter;
367 };
368 struct tyObject_Table__NttoEzoiq5CiphZe81oadg {
369 tySequence__squ9b9bUH4OLHf6cEMrt6hVA* data;
370 NI counter;
371 };
372 struct tyObject_Table__nagDFX4QHx0s6Fvma9blmSg {
373 tySequence__pHNq3oXj9av2sEUdqaqeZjw* data;
374 NI counter;
375 };
376 typedef N_NIMCALL_PTR(void, tyProc__TjycsqkDBjsxd4da6KYTng) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
377 typedef N_NIMCALL_PTR(void, tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body);
378 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__J7Jq15ZScfKLqcLx8sEz9cA) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TType__facALICuu8zUj0hjvbTLFg* formal, tyObject_TType__facALICuu8zUj0hjvbTLFg* actual);
379 struct tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA {
380 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opNot;
381 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opContains;
382 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLe;
383 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLt;
384 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAnd;
385 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opOr;
386 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opIsNil;
387 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opEq;
388 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opAdd;
389 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opSub;
390 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opMul;
391 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opDiv;
392 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opLen;
393 };
394 struct tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ {
395 tySequence__4mZLwkxT8rbt9bf3wXrXYNQ* ifaces;
396 tySequence__rQHmYk1HzcwNxKBymIFHpA* packed_0;
397 tySequence__XMM60DtBsc6xYsIpNANkrA* encoders;
398 tyObject_Table__ZqXrnX212T9bCb4lhpQ9bFBw typeInstCache;
399 tyObject_Table__UVZI5J9aS51B4B0eYPpW1Rg procInstCache;
400 tyArray__pxY9cgs6r9cBvGwlO8XZ9ccbQ attachedOps;
401 tyObject_Table__KUYGGgSxi8wBr0SXET9bi3w methodsPerType;
402 tyObject_Table__KcymdZjUsmGSK8BxmvoJgw enumToStringProcs;
403 tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA emittedTypeInfo;
404 tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ startupPackedConfig;
405 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageSyms;
406 tyObject_Table__hd3qB0wXU9bWPJR7fjShhbA modulesPerPackage;
407 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA deps;
408 tyObject_Table__fdKWDDO1P17zvuQPReVgRA importDeps;
409 NIM_BOOL suggestMode;
410 NIM_BOOL invalidTransitiveClosure;
411 tyObject_Table__e2Ciu0s1q49aVQ7ULXy7l9bQ inclToMod;
412 tySequence__48JTohSgTy339bRxHzUD8KA* importStack;
413 RootObj* backend;
414 tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
415 tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
416 RootObj* vm;
417 tyProc__In3g79a0qTcRmbTbJp9ba9ctg doStopCompile;
418 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* usageSym;
419 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* owners;
420 tySequence__s9byh6WFJ16lPMcmqdaMTHA* methods;
421 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* systemModule;
422 tyArray__9bjuenwQUcqO3lbmS2wX7uA sysTypes;
423 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA compilerprocs;
424 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA exposed;
425 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA packageTypes;
426 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* emptyNode;
427 tyObject_Table__Ue6w4c82v7gc7t2qntTbAw canonTypes;
428 tyObject_Table__G1v8c16HePOldLeucwe05Q symBodyHashes;
429 tyProc__VHDwJFdIqpwtpUGuxiXUwg importModuleCallback;
430 tyProc__mjUN9alLJ31lnSKkUsuyWMw includeFileCallback;
431 tyObject_Table__0Y2brGGKD9bV6GJLXT9aUDgA cacheSeqs;
432 tyObject_Table__NttoEzoiq5CiphZe81oadg cacheCounters;
433 tyObject_Table__nagDFX4QHx0s6Fvma9blmSg cacheTables;
434 tySequence__MAQKEADohlpnXTModtugbQ* passes;
435 tyProc__TjycsqkDBjsxd4da6KYTng onDefinition;
436 tyProc__TjycsqkDBjsxd4da6KYTng onDefinitionResolveForward;
437 tyProc__TjycsqkDBjsxd4da6KYTng onUsage;
438 tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* globalDestructors;
439 tyProc__Mrj9cEgtPER9bAXMDB9cTXrfQ strongSemCheck;
440 tyProc__J7Jq15ZScfKLqcLx8sEz9cA compatibleProps;
441 tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
442 tyObject_Operators__EbMP71azE1HSvYAQoCH9cXA operators;
443 };
444 struct TGenericSeq {
445 NI len;
446 NI reserved;
447 };
448 typedef NU8 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ;
449 struct TNimNode {
450 tyEnum_TNimNodeKind__unfNsxrcATrufDZmpBq4HQ kind;
451 NI offset;
452 TNimType* typ;
453 NCSTRING name;
454 NI len;
455 TNimNode** sons;
456 };
457 struct tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g {
458 NI refcount;
459 TNimType* typ;
460 };
461 struct tyObject_GcStack__7fytPA5bBsob6See21YMRA {
462 void* bottom;
463 };
464 struct tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w {
465 NI len;
466 NI cap;
467 tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g** d;
468 };
469 typedef tyObject_SmallChunk__tXn60W2f8h3jgAYdEmy5NQ* tyArray__SPr7N6UKfuF549bNPiUvSRw[256];
470 typedef NU32 tyArray__BHbOSqU1t9b3Gt7K2c6fQig[24];
471 typedef tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* tyArray__N1u1nqOgmuJN9cSZrnMHgOQ[32];
472 typedef tyArray__N1u1nqOgmuJN9cSZrnMHgOQ tyArray__B6durA4ZCi1xjJvRtyYxMg[24];
473 typedef tyObject_Trunk__W0r8S0Y3UGke6T9bIUWnnuw* tyArray__lh2A89ahMmYg9bCmpVaplLbA[256];
474 struct tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA {
475 tyArray__lh2A89ahMmYg9bCmpVaplLbA data;
476 };
477 typedef tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* tyArray__0aOLqZchNi8nWtMTi8ND8w[2];
478 struct tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw {
479 tyArray__0aOLqZchNi8nWtMTi8ND8w link;
480 NI key;
481 NI upperBound;
482 NI level;
483 };
484 struct tyTuple__ujsjpB2O9cjj3uDHsXbnSzg {
485 tyObject_BigChunk__Rv9c70Uhp2TytkX7eH78qEg* Field0;
486 NI Field1;
487 };
488 typedef tyTuple__ujsjpB2O9cjj3uDHsXbnSzg tyArray__LzOv2eCDGiceMKQstCLmhw[30];
489 struct tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg {
490 NI len;
491 tyArray__LzOv2eCDGiceMKQstCLmhw chunks;
492 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg* next;
493 };
494 struct tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg {
495 NI minLargeObj;
496 NI maxLargeObj;
497 tyArray__SPr7N6UKfuF549bNPiUvSRw freeSmallChunks;
498 NU32 flBitmap;
499 tyArray__BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
500 tyArray__B6durA4ZCi1xjJvRtyYxMg matrix;
501 tyObject_LLChunk__XsENErzHIZV9bhvyJx56wGw* llmem;
502 NI currMem;
503 NI maxMem;
504 NI freeMem;
505 NI occ;
506 NI lastSize;
507 tyObject_IntSet__EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
508 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* root;
509 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* deleted;
510 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* last;
511 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
512 NIM_BOOL locked;
513 NIM_BOOL blockChunkSizeIncrease;
514 NI nextChunkSize;
515 tyObject_AvlNode__IaqjtwKhxLEpvDS9bct9blEw bottomData;
516 tyObject_HeapLinks__PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
517 };
518 struct tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg {
519 NI stackScans;
520 NI cycleCollections;
521 NI maxThreshold;
522 NI maxStackSize;
523 NI maxStackCells;
524 NI cycleTableSize;
525 NI64 maxPause;
526 };
527 struct tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ {
528 NI counter;
529 NI max;
530 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg* head;
531 tyObject_PageDesc__fublkgIY4LG3mT51LU2WHg** data;
532 };
533 struct tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ {
534 tyObject_GcStack__7fytPA5bBsob6See21YMRA stack;
535 NI cycleThreshold;
536 NI zctThreshold;
537 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w zct;
538 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w decStack;
539 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w tempStack;
540 NI recGcLock;
541 tyObject_MemRegion__x81NhDv59b8ercDZ9bi85jyg region;
542 tyObject_GcStat__0RwLoVBHZPfUAcLczmfQAg stat;
543 tyObject_CellSet__jG87P0AI9aZtss9ccTYBIISQ marked;
544 tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w additionalRoots;
545 NI gcThreadId;
546 };
547 typedef NU8 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg;
548 typedef NU8 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag;
549 typedef NU8 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ;
550 struct NimStringDesc {
551   TGenericSeq Sup;
552 NIM_CHAR data[SEQ_DECL_SIZE];
553 };
554 struct tyObject_Target__9abOl5DLX8suLujOaHSvGzw {
555 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag targetCPU;
556 tyEnum_TSystemCPU__XYDt7D1G3qcClFyZy1Ky9ag hostCPU;
557 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ targetOS;
558 tyEnum_TSystemOS__s7Mlr1t66SUqP6BKJMXLaQ hostOS;
559 NI intSize;
560 NI floatSize;
561 NI ptrSize;
562 NimStringDesc* tnl;
563 };
564 typedef NU8 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA;
565 struct tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A {
566 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q trackPos;
567 NIM_BOOL trackPosAttached;
568 tySet_tyEnum_TErrorOutput__fBf8Teueoz9aAkO5cXaxrpA errorOutputs;
569 tySequence__tNFrR3kRuS1FSwuiLGoSSA* msgContext;
570 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastError;
571 tyObject_Table__Ab4q9c36aMR4mtkEOIBzdzA filenameToIndexTbl;
572 tySequence__Zi9cGbCWofbtABoHJ5RbLNQ* fileInfos;
573 NI32 systemFileIdx;
574 };
575 typedef NU8 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ;
576 typedef NU8 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA;
577 typedef NU8 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ;
578 typedef NU8 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ;
579 struct tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg {
580 tySequence__4eRCaZmrYLLw2k30GPTiMw* data;
581 NI counter;
582 };
583 typedef NU32 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ;
584 typedef NU8 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA;
585 typedef NU8 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ;
586 typedef NU8 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug[11];
587 struct tyTuple__47w2DboNEPf69aPgubZdd7Q {
588 NI Field0;
589 NI Field1;
590 NI Field2;
591 };
592 typedef NU8 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug;
593 typedef struct {
594 N_NIMCALL_PTR(void, ClP_0) (tyObject_SuggestcolonObjectType___bkMuTTb2G70XfpzAiyNrnQ* result, void* ClE_0);
595 void* ClE_0;
596 } tyProc__YD0MR9bJ2x4beJkZdnjXN9cA;
597 typedef struct {
598 N_NIMCALL_PTR(void, ClP_0) (NimStringDesc* output, void* ClE_0);
599 void* ClE_0;
600 } tyProc__k2HFjxisIgDALbEUFojxaQ;
601 typedef NU8 tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA;
602 typedef struct {
603 N_NIMCALL_PTR(void, ClP_0) (tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* msg, tyEnum_Severity__x5BWBPGAbIH9clm5pmNp5DA severity, void* ClE_0);
604 void* ClE_0;
605 } tyProc__oL9coyIA2VDTGdUcur9aL9bew;
606 struct tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw {
607 tyEnum_TBackend__4OBsgZ9cscH2JLUE5Wcz01g backend;
608 tyObject_Target__9abOl5DLX8suLujOaHSvGzw target;
609 NI linesCompiled;
610 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
611 tySet_tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw globalOptions;
612 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* macrosToExpand;
613 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* arcToExpand;
614 tyObject_MsgConfig__kV7r8HWT0SqOYW2k2ukC6A m;
615 tyEnum_FilenameOption__eL86bAtPxXWHj24F5gOMFQ filenameOption;
616 NimStringDesc* unitSep;
617 NI evalTemplateCounter;
618 NI evalMacroCounter;
619 NI8 exitcode;
620 tyEnum_Command__0zjcIQ623TIRGPdtjLwTFA cmd;
621 NimStringDesc* cmdInput;
622 NIM_BOOL projectIsCmd;
623 NIM_BOOL implicitCmd;
624 tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw selectedGC;
625 tyEnum_ExceptionSystem__1mkAogyaDAT7g9cQjzsgKLQ exc;
626 NIM_BOOL hintProcessingDots;
627 NI verbosity;
628 NI numberOfProcessors;
629 NF lastCmdTime;
630 tyEnum_SymbolFilesOption__gBES9bqm1ru9ape8SeMRAFgQ symbolFiles;
631 NI spellSuggestMax;
632 tyObject_HashSet__CD8Dpv0WGmASelVaNSo6zg cppDefines;
633 NimStringDesc* headerFile;
634 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
635 tySet_tyEnum_LegacyFeature__hGCD9aOrxPvpXn4Ne6W6OVA legacyFeatures;
636 NimStringDesc* arguments;
637 tyEnum_IdeCmd__1Ced39bl5eePmZ1PKMPXigQ ideCmd;
638 NIM_BOOL oldNewlines;
639 tyEnum_TSystemCC__1eWBJUonHMOnlBwsOvpFmA cCompiler;
640 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug modifiedyNotes;
641 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug cmdlineNotes;
642 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug foreignPackageNotes;
643 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug notes;
644 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug warningAsErrors;
645 tySet_tyEnum_TMsgKind__7VIi6mabc7hDxpCmSMYIug mainPackageNotes;
646 NI mainPackageId;
647 NI errorCounter;
648 NI hintCounter;
649 NI warnCounter;
650 NI errorMax;
651 NI maxLoopIterationsVM;
652 NIM_BOOL isVmTrace;
653 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* configVars;
654 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* symbols;
655 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* packageCache;
656 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* nimblePaths;
657 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* searchPaths;
658 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lazyPaths;
659 NimStringDesc* outFile;
660 NimStringDesc* outDir;
661 NimStringDesc* jsonBuildFile;
662 NimStringDesc* prefixDir;
663 NimStringDesc* libpath;
664 NimStringDesc* nimcacheDir;
665 tyTuple__47w2DboNEPf69aPgubZdd7Q nimStdlibVersion;
666 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* dllOverrides;
667 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* moduleOverrides;
668 tyObject_StringTableObj__V5PVrt9bIxZEeV7lfvqqtNg* cfileSpecificOptions;
669 NimStringDesc* projectName;
670 NimStringDesc* projectPath;
671 NimStringDesc* projectFull;
672 NIM_BOOL projectIsStdin;
673 tySet_tyEnum_StdOrrKind__6cbmyTzDPaZU9afMe4mz3Ug lastMsgWasDot;
674 NI32 projectMainIdx;
675 NI32 projectMainIdx2;
676 NimStringDesc* command;
677 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* commandArgs;
678 NimStringDesc* commandLine;
679 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* extraCmds;
680 NIM_BOOL keepComments;
681 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitImports;
682 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* implicitIncludes;
683 NimStringDesc* docSeeSrcUrl;
684 NimStringDesc* docRoot;
685 NimStringDesc* docCmd;
686 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* configFiles;
687 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cIncludes;
688 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLibs;
689 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* cLinkedLibs;
690 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* externalToLink;
691 NimStringDesc* linkOptionsCmd;
692 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* compileOptionsCmd;
693 NimStringDesc* linkOptions;
694 NimStringDesc* compileOptions;
695 NimStringDesc* cCompilerPath;
696 tySequence__pK3qSsBZwdXd6qyUMkd5Jw* toCompile;
697 tyProc__YD0MR9bJ2x4beJkZdnjXN9cA suggestionResultHook;
698 NI suggestVersion;
699 NI suggestMaxResults;
700 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastLineInfo;
701 tyProc__k2HFjxisIgDALbEUFojxaQ writelnHook;
702 tyProc__oL9coyIA2VDTGdUcur9aL9bew structuredErrorHook;
703 NimStringDesc* cppCustomNamespace;
704 NimStringDesc* nimMainPrefix;
705 tyObject_ProfileDatacolonObjectType___rPBBfFL4X0b9cQ6rfMNPXig* vmProfileData;
706 };
707 typedef NIM_BOOL tyArray__ghpD42BXWBF9atU69bA3FcvQ[4];
708 struct tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q {
709 NI32 module;
710 NI32 symId;
711 NI32 typeId_0;
712 NIM_BOOL sealed;
713 };
714 typedef NimStringDesc* tyArray__JXkBzVsE9bvmcpuZvrueLVg[5];
715 typedef NU8 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
716 typedef NU16 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg;
717 typedef NU64 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
718 struct tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ {
719   tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w Sup;
720 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
721 union{
722 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* gcUnsafetyReason;
723 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* transformedBody;
724 } _kind_1;
725 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* guard;
726 NI bitsize;
727 NI alignment;
728 } _kind_2;
729 };
730 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
731 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
732 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* name;
733 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
734 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner;
735 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
736 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ast;
737 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
738 NI position;
739 NI offset;
740 tyObject_TLoc__EtHNvCB0bgfu9bFjzx9cb6aA loc;
741 tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* annex;
742 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* constraint;
743 };
744 typedef NU8 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw;
745 typedef NU32 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg;
746 struct tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw {
747 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
748 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
749 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
750 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
751 union{
752 struct {NI64 intVal;
753 } _kind_1;
754 struct {NF floatVal;
755 } _kind_2;
756 struct {NimStringDesc* strVal;
757 } _kind_3;
758 struct {tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
759 } _kind_4;
760 struct {tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* ident;
761 } _kind_5;
762 struct {tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ* sons;
763 } _kind_6;
764 };
765 };
766 typedef NU8 tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw;
767 struct tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA {
768 tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g;
769 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info;
770 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind;
771 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn;
772 tyObject_TType__facALICuu8zUj0hjvbTLFg* asgnForType;
773 NIM_BOOL recurse;
774 NIM_BOOL addMemReset;
775 NIM_BOOL canRaise;
776 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* filterDiscriminator;
777 tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c;
778 tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
779 };
780 struct tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w {
781   RootObj Sup;
782 tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen;
783 };
784 typedef tyObject_TType__facALICuu8zUj0hjvbTLFg* tyArray__d88NmFOoQ1OEoX9af4f9aptg[38];
785 struct tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q {
786 NI counter;
787 tySequence__Mh9agqM29bm9aP5AUL1x7dZGA* data;
788 };
789 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__RcJNn9bSvWdJgUmA1O6sbHA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
790 typedef NU32 tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ;
791 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__39auogS0nN05zO6JrT7za9cQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
792 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__DZXD9cPwIfL76eNszoUR9aVA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
793 typedef struct {
794 N_NIMCALL_PTR(NIM_BOOL, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
795 void* ClE_0;
796 } tyProc__7JwrY3AhkVNlleAJXClX9cw;
797 typedef NU32 tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw;
798 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__qlV9aWvA5wrWVg9bI5PqwJyA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* nOrig, tySet_tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw filter, tySet_tyEnum_TExprFlag__0WWd9a4ssQWuY7Q6ZKepq9cQ flags);
799 typedef N_NIMCALL_PTR(tyObject_TType__facALICuu8zUj0hjvbTLFg*, tyProc__IDzB9bjws1yntQXPpMRrBvA) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TType__facALICuu8zUj0hjvbTLFg* prev);
800 typedef struct {
801 N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, void* ClE_0);
802 void* ClE_0;
803 } tyProc__3cacbJ4la9bDJNibHybQSnA;
804 typedef struct {
805 N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, ClP_0) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* fn, tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q pt, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, void* ClE_0);
806 void* ClE_0;
807 } tyProc__fMj9boIZZOt9cLWRnD3rtKhA;
808 typedef N_NIMCALL_PTR(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, tyProc__zh0Qj9bYHDZFnJnPjcxz6NQ) (tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* dc, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op, NI col);
809 struct tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w {
810 tySequence__Bis5AbpONWcIRrPyPJS8Yw* data;
811 NI counter;
812 };
813 struct tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w {
814 tySequence__E8pi9b5QNahsURYzXMjh3qw* data;
815 NI counter;
816 };
817 struct tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ {
818 tySequence__Hkw5zrAn53wlKDHdJF1GFA* data;
819 NI counter;
820 };
821 struct tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug {
822   tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w Sup;
823 tyObject_TType__facALICuu8zUj0hjvbTLFg* enforceVoidContext;
824 tyObject_TType__facALICuu8zUj0hjvbTLFg* voidType;
825 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
826 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* currentScope;
827 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* moduleScope;
828 tySequence__eiMlYcU7NrAOGD2H36QOOQ* imports;
829 tyObject_TScope__1cQRXW6aAknk7ywAwjH3nw* topLevelScope;
830 tyObject_TProcCon__s5jyYR8yL1QmFqiHICzU9aQ* p;
831 tyArray__d88NmFOoQ1OEoX9af4f9aptg intTypeCache;
832 tyObject_TType__facALICuu8zUj0hjvbTLFg* nilTypeCache;
833 tyObject_TMatchedConcept__9blNHn9cqK8EfxnwsfjDnKvg* matchedConcept;
834 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* friendModules;
835 NI instCounter;
836 NI* templInstCounter;
837 NI inGenericContext;
838 NI inStaticContext;
839 NI inUnrolledContext;
840 NI compilesContextId;
841 NI compilesContextIdGenerator;
842 NI inGenericInst;
843 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* converters;
844 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* patterns;
845 tySequence__oYkV9aFZe0MXcEAprJaOUsA* optionStack;
846 tyObject_TIdTable__9aiv9bp2t5icFNINcg9c4xi1Q symMapping;
847 tySequence__arD7Tw6eD6lvOczWZl9buNg* libs;
848 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstExpr;
849 tyProc__39auogS0nN05zO6JrT7za9cQ semExpr;
850 tyProc__39auogS0nN05zO6JrT7za9cQ semTryExpr;
851 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semTryConstExpr;
852 tyProc__DZXD9cPwIfL76eNszoUR9aVA computeRequiresInit;
853 tyProc__7JwrY3AhkVNlleAJXClX9cw hasUnresolvedArgs;
854 tyProc__39auogS0nN05zO6JrT7za9cQ semOperand;
855 tyProc__RcJNn9bSvWdJgUmA1O6sbHA semConstBoolExpr;
856 tyProc__qlV9aWvA5wrWVg9bI5PqwJyA semOverloadedCall;
857 tyProc__IDzB9bjws1yntQXPpMRrBvA semTypeNode;
858 tyProc__3cacbJ4la9bDJNibHybQSnA semInferredLambda;
859 tyProc__fMj9boIZZOt9cLWRnD3rtKhA semGenerateInstance;
860 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA includedFiles;
861 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA pureEnumFields;
862 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA userPragmas;
863 tyObject_TCtx__S3Av1Ng7MBWGEZZBhfDYCw* evalContext;
864 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA unknownIdents;
865 tySequence__jWKvSdankQPoT5bw9cBU9aiw* generics;
866 NI topStmts;
867 NI lastGenericIdx;
868 NI hloLoopDetector;
869 NI inParallelStmt;
870 tyProc__zh0Qj9bYHDZFnJnPjcxz6NQ instTypeBoundOp;
871 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* selfName;
872 tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* cache;
873 tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph;
874 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA signatures;
875 NimStringDesc* recursiveDep;
876 NIM_BOOL suggestionsMade;
877 NIM_BOOL isAmbiguous;
878 tySet_tyEnum_Feature__01UoAKYz1MxZiuG1X2VhNQ features;
879 NI inTypeContext;
880 NI inConceptDecl;
881 tySequence__xSqu3cxq5WeFlOO3YgE6yA* unusedImports;
882 tyObject_HashSet__Gy4haGrophX9bC5RxnPAc6w exportIndirections;
883 tyObject_Table__Ea0e9azliYta9cYyn0d49ah0w importModuleMap;
884 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q lastTLineInfo;
885 tyObject_Table__svXG3o7j9bfi6HJT79cNF29cQ sideEffects;
886 NI inUncheckedAssignSection;
887 };
888 typedef NU8 tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w;
889 typedef NU8 tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw;
890 struct tyTuple__kN8up2W6YKc5YA9avn5mV5w {
891 NimStringDesc* Field0;
892 NI Field1;
893 NI Field2;
894 };
895 typedef NU8 tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw;
896 typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__T6RKPw8xfAeNaoei9aZGzXg[3];
897 typedef NU32 tyArray__FleBT9cC2nxhgiXmSYYnEKA[4];
898 struct tyObject_Int128__9a9axPfb75jdWY25AamJewkA {
899 tyArray__FleBT9cC2nxhgiXmSYYnEKA udata;
900 };
901 typedef NU8 tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw;
902 typedef N_NIMCALL_PTR(NIM_BOOL, tyProc__NbBRo5rVxVVQby3QsoZkZQ) (tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
903 typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__AB6yfoUgfWM2NtGe9bzkCmw[2];
904 typedef tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tyArray__jlWPjgtbdjE069arIWHC9c9bg[1];
905 typedef NU8 tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg;
906 typedef NU8 tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw;
907 struct tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA {
908 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
909 tySequence__vv5mGmK03BCr5e3LTZA5Hw* converters;
910 tySequence__vv5mGmK03BCr5e3LTZA5Hw* patterns;
911 tySequence__vv5mGmK03BCr5e3LTZA5Hw* pureEnums;
912 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interf;
913 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA interfHidden;
914 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* uniqueName;
915 };
916 typedef NU8 tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q;
917 struct tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw {
918 tySequence__29bS0n2QNyO1R7e0qMMOvLA* nodes;
919 };
920 typedef NU8 tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g;
921 struct tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg {
922 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* vals;
923 tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
924 };
925 struct tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ {
926 tySequence__IHUFRsFxZNv7YydiUO2esQ* vals;
927 tySequence__9bAGqSvkAaFL9bWjsEPslrFA* keys;
928 };
929 struct tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ {
930 NimStringDesc* definedSymbols;
931 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw moduleFlags;
932 tySequence__PXIzfWocnrafGz5p3CP5LA* includes;
933 tySequence__9bAGqSvkAaFL9bWjsEPslrFA* imports;
934 tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw toReplay;
935 tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw topLevel;
936 tyObject_PackedTree__8otSrA7MENGYESDkEP7nnw bodies;
937 tySequence__b89aLriiJnVTD186H6zNIgg* exports;
938 tySequence__b89aLriiJnVTD186H6zNIgg* hidden;
939 tySequence__REuPuHuSlOkZ0Q5oqzDrQg* reexports;
940 tySequence__b89aLriiJnVTD186H6zNIgg* compilerProcs;
941 tySequence__48JTohSgTy339bRxHzUD8KA* converters;
942 tySequence__48JTohSgTy339bRxHzUD8KA* methods;
943 tySequence__48JTohSgTy339bRxHzUD8KA* trmacros;
944 tySequence__48JTohSgTy339bRxHzUD8KA* pureEnums;
945 tySequence__I9aQmO9asXXWJ58UI9c8BCSzA* macroUsages;
946 tySequence__NyaOkf8ZwxP6rkRF5TOkew* typeInstCache;
947 tySequence__L9bOt8CaTEmIjgtuZvp6syg* procInstCache;
948 tySequence__im8UB2GsZvUaQ4a1wKGWhQ* attachedOps;
949 tySequence__xxnXDLpoqBo8zJzP9b1073g* methodsPerType;
950 tySequence__NyaOkf8ZwxP6rkRF5TOkew* enumToStringProcs;
951 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* emittedTypeInfo;
952 tySet_tyEnum_ModuleBackendFlag__fgnyOEZ7Q9aYVj8O59afcT4g backendFlags;
953 tySequence__DfmUmNgVGnYaiV1I6227tw* syms;
954 tySequence__t8Uv4lEJ4lkuECvP9c6JMhA* types;
955 tyObject_BiTable__SMd2CpsYscvX1veKoGcqmg strings;
956 tyObject_BiTable__DyMEQOe8VsqcG49bIhU69bBQ numbers;
957 tyObject_PackedConfig__McwvRupqDAJbGrinIDFZJQ cfg;
958 };
959 struct tyObject_Table__CE4eiu6FavV1vmUiTXQ70g {
960 tySequence__9bT7o0CflHuiE4VhmtqBPCw* data;
961 NI counter;
962 };
963 struct tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w {
964 tyEnum_ModuleStatus__MgSLMPwZ4GVYYz7Kn9bmm6Q status;
965 NIM_BOOL symsInit;
966 NIM_BOOL typesInit;
967 NIM_BOOL loadedButAliveSetChanged;
968 tyObject_PackedModule__ZSxNoR2V6oK5xosmtvhjNQ fromDisk;
969 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* syms;
970 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* types;
971 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module;
972 tyObject_Table__CE4eiu6FavV1vmUiTXQ70g iface;
973 tyObject_Table__CE4eiu6FavV1vmUiTXQ70g ifaceHidden;
974 };
975 struct tyObject_Table__TRm6MPqklA8EYBmBMY117Q {
976 tySequence__9cnx3zXnWzeclW8Ko4oUgAQ* data;
977 NI counter;
978 };
979 struct tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw {
980 NI32 thisModule;
981 NI32 lastFile;
982 NU32 lastLit;
983 tyObject_Table__TRm6MPqklA8EYBmBMY117Q filenames;
984 tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A* pendingTypes;
985 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* pendingSyms;
986 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA typeMarker;
987 tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA symMarker;
988 tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* config;
989 };
990 struct tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ {
991 NU32 module;
992 NI32 item;
993 };
994 struct tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ {
995 NI module;
996 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ packed_0;
997 };
998 struct tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg {
999 tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
1000 tyObject_TType__facALICuu8zUj0hjvbTLFg* typ;
1001 };
1002 struct tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ {
1003 NI Field0;
1004 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
1005 tySequence__O5RcspOP32YJ4YtU5ppxxA* Field2;
1006 };
1007 struct tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg {
1008 NI module;
1009 tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ sym;
1010 tySequence__ipEvhpHAmm8ZCn9bZAOdNYA* concreteTypes;
1011 tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
1012 };
1013 struct tyTuple__o67sDX0wYbEuhI9cJYAbDtg {
1014 NI Field0;
1015 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
1016 tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA* Field2;
1017 };
1018 struct tyTuple__9aNnDWBFMF44sfFinBpMT4Q {
1019 NI Field0;
1020 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
1021 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field2;
1022 };
1023 struct tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA {
1024 tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ id;
1025 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym;
1026 };
1027 struct tyTuple__VrD6plbUKJjYKM0lCr3hGQ {
1028 NI Field0;
1029 tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field1;
1030 };
1031 struct tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg {
1032 NI Field0;
1033 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
1034 tySequence__159bHWBGAOOs6U7OZ9cQlO0g* Field2;
1035 };
1036 struct tyTuple__1ZbjBgxAbnye0IFMZ6w4OA {
1037 NI Field0;
1038 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
1039 tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA Field2;
1040 };
1041 struct tyTuple__xYhUhS7X82rKTqbT9bRfCnw {
1042 NI Field0;
1043 NimStringDesc* Field1;
1044 NI32 Field2;
1045 };
1046 struct tyTuple__rplX06U9bjhu9asm5pWdgqsA {
1047 NI Field0;
1048 tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g Field1;
1049 tyObject_TStrTable__f07aOS3dr28kGa5wcE29aFA Field2;
1050 };
1051 struct tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q {
1052 NI Field0;
1053 NI32 Field1;
1054 tySequence__48JTohSgTy339bRxHzUD8KA* Field2;
1055 };
1056 struct tyTuple__xDU9bZmv1ZbZkJDaATBekIQ {
1057 NI Field0;
1058 NI32 Field1;
1059 NI32 Field2;
1060 };
1061 struct tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A {
1062 tySequence__eHqUwlHGGaPw0TDPDeL79cQ* Field0;
1063 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
1064 };
1065 struct tyTuple__OJFzEczluV8Jmo9bRpBfkzw {
1066 NI Field0;
1067 NI Field1;
1068 tyArray__qtqsWM5aXmcpMIVmvq3kAA Field2;
1069 };
1070 struct tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw {
1071 NI Field0;
1072 NimStringDesc* Field1;
1073 tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* Field2;
1074 };
1075 struct tyTuple__F3gkSrMB1qp2Tvf9bixVXwg {
1076 NI Field0;
1077 NimStringDesc* Field1;
1078 NI64 Field2;
1079 };
1080 struct tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg {
1081 tyObject_NodecolonObjectType___dNELmBSmY7nthjhZupWO6g* root;
1082 NI entries;
1083 };
1084 struct tyTuple__wcNatyuf8WOqAhGLhSvgiw {
1085 NI Field0;
1086 NimStringDesc* Field1;
1087 tyObject_BTree__VZdzO0Tlflp7WMN4gS8oPg Field2;
1088 };
1089 typedef N_NIMCALL_PTR(tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w*, tyProc__jkSFMhvPZ1AdGcvT2dK9a2w) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* module, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
1090 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__A7Sdoem70tRxSEmKrf9cmyg) (tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* topLevelStmt);
1091 typedef N_NIMCALL_PTR(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, tyProc__EAEKmBUgKFg29agoUGtzDEQ) (tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* graph, tyObject_TPassContext__Hb6rFM0ecvtlLf2kv9aU75w* p, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1092 struct tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ {
1093 tyProc__jkSFMhvPZ1AdGcvT2dK9a2w Field0;
1094 tyProc__A7Sdoem70tRxSEmKrf9cmyg Field1;
1095 tyProc__EAEKmBUgKFg29agoUGtzDEQ Field2;
1096 NIM_BOOL Field3;
1097 };
1098 struct tyTuple__z822nu9bFF1AlQnLrHjdwpA {
1099 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
1100 NimStringDesc* Field1;
1101 };
1102 struct tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw {
1103 NimStringDesc* fullPath;
1104 NimStringDesc* projPath;
1105 NimStringDesc* shortName;
1106 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedName;
1107 tyObject_RopeObj__OFzf0kSiPTcNreUIeJgWVA* quotedFullName;
1108 tySequence__sM4lkSb7zS6F7OVMvW9cffQ* lines;
1109 NimStringDesc* dirtyFile;
1110 NimStringDesc* hash;
1111 NIM_BOOL dirty;
1112 };
1113 struct tyTuple__QeWl6B6ffS4pU6WWrtcrDw {
1114 NI Field0;
1115 NimStringDesc* Field1;
1116 };
1117 typedef NU8 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA;
1118 struct tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg {
1119 NimStringDesc* nimname;
1120 NimStringDesc* cname;
1121 NimStringDesc* obj;
1122 tySet_tyEnum_CfileFlag__Vl9c9ayddDuXiWtnWTsEYGsA flags;
1123 NimStringDesc* customArgs;
1124 };
1125 typedef NU8 tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ;
1126 struct tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ {
1127 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* m;
1128 tyEnum_ImportMode__OHfXXgrGOSWpZv16VYg4yQ mode;
1129 union{
1130 struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA imported;
1131 } _mode_2;
1132 struct {tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA exceptSet;
1133 } _mode_3;
1134 };
1135 };
1136 struct tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg {
1137 tyObject_TIdObj__KUwfjfUQEwGHguQbTcXu7w* key;
1138 RootObj* val;
1139 };
1140 struct tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ {
1141 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* genericSym;
1142 tyObject_TInstantiation__5LqgVn6Tq9ainQRK7TQAQxA* inst;
1143 };
1144 struct tyTuple__KNXySARiHvEh2wA9asnyYmw {
1145 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field0;
1146 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field1;
1147 };
1148 struct tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ {
1149 NI Field0;
1150 NI Field1;
1151 };
1152 struct tyTuple__NAaJgGVgNmlGoqmiWxdOHQ {
1153 NI Field0;
1154 tyTuple__1v9bKyksXWMsm0vNwmZ4EuQ Field1;
1155 };
1156 struct tyTuple__KvKIqRIx9anKcDMu8DPSkHw {
1157 tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q Field0;
1158 tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* Field1;
1159 };
1160 struct tyTuple__Y6Ewh3MCxsjd1bsriN6Gag {
1161 NI Field0;
1162 NI Field1;
1163 tySequence__vGU8AyGT6KxtLJwEg0BpNw* Field2;
1164 };
1165 struct tyTuple__0q9cmhneJEKnQERTpXXdz6Q {
1166 NU32 Field0;
1167 NimStringDesc* Field1;
1168 };
1169 struct tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg {
1170 NU16 line;
1171 NI16 col;
1172 NU32 file;
1173 };
1174 struct tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow {
1175 tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind;
1176 tySet_tyEnum_TNodeFlag__jyh9acXHkhZANSSvPIY7ZLg flags;
1177 NI32 operand;
1178 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeId_0;
1179 tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
1180 };
1181 struct tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ {
1182 NU32 Field0;
1183 NI32 Field1;
1184 };
1185 struct tyTuple__Q7r9caOmeWqQGZCIBHhGRUA {
1186 NU32 Field0;
1187 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
1188 };
1189 struct tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg {
1190 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
1191 tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg Field1;
1192 };
1193 struct tyTuple__XyJ8LOAZzVVXSsmt09b8uWw {
1194 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
1195 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
1196 };
1197 struct tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA {
1198 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ key;
1199 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
1200 tySequence__vC9cvg0R8tfBaOXXi3sfMzw* concreteTypes;
1201 };
1202 struct tyTuple__9aoobCDZB4x41HJSOmh0mwA {
1203 tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg Field0;
1204 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field1;
1205 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
1206 };
1207 struct tyTuple__g0Q6Qx15nK53ce9aLo7YyrA {
1208 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field0;
1209 NI Field1;
1210 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ Field2;
1211 };
1212 typedef NU8 tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ;
1213 struct tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw {
1214 tyEnum_TLibKind__9b8v60kso59bBaw9cp8B9a9apKQ kind;
1215 NIM_BOOL generated;
1216 NIM_BOOL isOverriden;
1217 NU32 name;
1218 NI32 path;
1219 };
1220 struct tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw {
1221 tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw kind;
1222 NU32 name;
1223 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typ;
1224 tySet_tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw flags;
1225 tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic;
1226 tyObject_PackedLineInfo__Q9bbXLBurHo2r5TyF6UBshg info;
1227 NI32 ast;
1228 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
1229 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ guard;
1230 NI bitsize;
1231 NI alignment;
1232 tySet_tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg options;
1233 NI position;
1234 NI offset;
1235 NU32 externalName;
1236 tySet_tyEnum_TLocFlag__o2bqJgR4ceIupnUSpxiudA locFlags;
1237 tyObject_PackedLib__oa01YzfeXO9bbIDH9cIki4Hw annex;
1238 NI32 constraint;
1239 };
1240 struct tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA {
1241 tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind;
1242 tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA callConv;
1243 tySet_tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw flags;
1244 tySequence__vC9cvg0R8tfBaOXXi3sfMzw* types;
1245 NI32 n;
1246 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ sym;
1247 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ owner;
1248 NI64 size;
1249 NI16 align;
1250 NI16 paddingAtEnd;
1251 NI16 lockLevel;
1252 tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ typeInst;
1253 NI32 nonUniqueId;
1254 };
1255 struct tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ {
1256 NI Field0;
1257 tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* Field1;
1258 tySequence__vC9cvg0R8tfBaOXXi3sfMzw* Field2;
1259 };
1260 struct tyTuple__UvldbCB6B9ayi9bGYW7vJNLA {
1261 NI Field0;
1262 NI32 Field1;
1263 NU32 Field2;
1264 };
1265 struct tySequence__1U9bG8RcAedEeYkQLZjVFKA {
1266   TGenericSeq Sup;
1267   tyTuple__3i6hlQmqrn6m7tuVN8FHjQ data[SEQ_DECL_SIZE];
1268 };
1269 struct tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ {
1270   TGenericSeq Sup;
1271   tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* data[SEQ_DECL_SIZE];
1272 };
1273 struct tySequence__9aZVGG5Gtti9cC9bqRpXCtA3A {
1274   TGenericSeq Sup;
1275   tyObject_TType__facALICuu8zUj0hjvbTLFg* data[SEQ_DECL_SIZE];
1276 };
1277 struct tySequence__4mZLwkxT8rbt9bf3wXrXYNQ {
1278   TGenericSeq Sup;
1279   tyObject_Iface__uvkV248cZcsEQKaQm7C9aEA data[SEQ_DECL_SIZE];
1280 };
1281 struct tySequence__rQHmYk1HzcwNxKBymIFHpA {
1282   TGenericSeq Sup;
1283   tyObject_LoadedModule__14iJKkvOiWT62KF2D8f9c5w data[SEQ_DECL_SIZE];
1284 };
1285 struct tySequence__XMM60DtBsc6xYsIpNANkrA {
1286   TGenericSeq Sup;
1287   tyObject_PackedEncoder__B9cE9a0GbvqWW9aHf4N7RAaIw data[SEQ_DECL_SIZE];
1288 };
1289 struct tySequence__O5RcspOP32YJ4YtU5ppxxA {
1290   TGenericSeq Sup;
1291   tyObject_LazyType__Q19c34D32PKyTKlx6R6yODg data[SEQ_DECL_SIZE];
1292 };
1293 struct tySequence__ChDZ6dokJ9aj9cg3KBoCU5vg {
1294   TGenericSeq Sup;
1295   tyTuple__l7R9cf53SDCcRmz9aWTyEKqQ data[SEQ_DECL_SIZE];
1296 };
1297 struct tySequence__Or1y9bNpmj8PM8AcK9c9cg7RA {
1298   TGenericSeq Sup;
1299   tyObject_LazyInstantiation__rlce0Sj8mBfLfm69c2yVTZg data[SEQ_DECL_SIZE];
1300 };
1301 struct tySequence__mWRMiYLthG9coLjkbElCxkw {
1302   TGenericSeq Sup;
1303   tyTuple__o67sDX0wYbEuhI9cJYAbDtg data[SEQ_DECL_SIZE];
1304 };
1305 struct tySequence__bTDCDwD2P7TodzbAefLcSw {
1306   TGenericSeq Sup;
1307   tyTuple__9aNnDWBFMF44sfFinBpMT4Q data[SEQ_DECL_SIZE];
1308 };
1309 struct tySequence__159bHWBGAOOs6U7OZ9cQlO0g {
1310   TGenericSeq Sup;
1311   tyTuple__VrD6plbUKJjYKM0lCr3hGQ data[SEQ_DECL_SIZE];
1312 };
1313 struct tySequence__3MPVXAHA08SszBrU4ffqEg {
1314   TGenericSeq Sup;
1315   tyTuple__dT8l9anHpNRgQSBAI9ctQ2wg data[SEQ_DECL_SIZE];
1316 };
1317 struct tySequence__YCf5zJHm4JI06qpmKwPUWg {
1318   TGenericSeq Sup;
1319   tyTuple__1ZbjBgxAbnye0IFMZ6w4OA data[SEQ_DECL_SIZE];
1320 };
1321 struct tySequence__7lEisrXlQEzwtUKW5pzRCw {
1322   TGenericSeq Sup;
1323   tyTuple__xYhUhS7X82rKTqbT9bRfCnw data[SEQ_DECL_SIZE];
1324 };
1325 struct tySequence__eHqUwlHGGaPw0TDPDeL79cQ {
1326   TGenericSeq Sup;
1327   tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* data[SEQ_DECL_SIZE];
1328 };
1329 struct tySequence__61s9cbAniKuBrdHwBhMDfQg {
1330   TGenericSeq Sup;
1331   tyTuple__rplX06U9bjhu9asm5pWdgqsA data[SEQ_DECL_SIZE];
1332 };
1333 struct tySequence__Bre9bNyuQOg1EJKitjSzn8w {
1334   TGenericSeq Sup;
1335   tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];
1336 };
1337 struct tySequence__48JTohSgTy339bRxHzUD8KA {
1338   TGenericSeq Sup;
1339   NI32 data[SEQ_DECL_SIZE];
1340 };
1341 struct tySequence__fdmz6VkIf1ewwrssKYqRFg {
1342   TGenericSeq Sup;
1343   tyTuple__1mtQ8sCEE7DbfIuQciv9b5Q data[SEQ_DECL_SIZE];
1344 };
1345 struct tySequence__kxu4GK0onha2t9bo86mdVAg {
1346   TGenericSeq Sup;
1347   tyTuple__xDU9bZmv1ZbZkJDaATBekIQ data[SEQ_DECL_SIZE];
1348 };
1349 struct tySequence__s9byh6WFJ16lPMcmqdaMTHA {
1350   TGenericSeq Sup;
1351   tyTuple__a9bBCAQ2tegdUQVlHYxdJ2A data[SEQ_DECL_SIZE];
1352 };
1353 struct tySequence__fIB1rTQ55aFonoft9a9bmljQ {
1354   TGenericSeq Sup;
1355   tyTuple__OJFzEczluV8Jmo9bRpBfkzw data[SEQ_DECL_SIZE];
1356 };
1357 struct tySequence__23SMqauuRsbDANhthj9bWlA {
1358   TGenericSeq Sup;
1359   tyTuple__2SGm9aGCXuo7XSQ9bqD29axXw data[SEQ_DECL_SIZE];
1360 };
1361 struct tySequence__squ9b9bUH4OLHf6cEMrt6hVA {
1362   TGenericSeq Sup;
1363   tyTuple__F3gkSrMB1qp2Tvf9bixVXwg data[SEQ_DECL_SIZE];
1364 };
1365 struct tySequence__pHNq3oXj9av2sEUdqaqeZjw {
1366   TGenericSeq Sup;
1367   tyTuple__wcNatyuf8WOqAhGLhSvgiw data[SEQ_DECL_SIZE];
1368 };
1369 struct tySequence__MAQKEADohlpnXTModtugbQ {
1370   TGenericSeq Sup;
1371   tyTuple__4o9cW9aUwdGqgZI9bSHHYnbaQ data[SEQ_DECL_SIZE];
1372 };
1373 struct tySequence__tNFrR3kRuS1FSwuiLGoSSA {
1374   TGenericSeq Sup;
1375   tyTuple__z822nu9bFF1AlQnLrHjdwpA data[SEQ_DECL_SIZE];
1376 };
1377 struct tySequence__Zi9cGbCWofbtABoHJ5RbLNQ {
1378   TGenericSeq Sup;
1379   tyObject_TFileInfo__GE3hAakXKOEpch4ap3zXAw data[SEQ_DECL_SIZE];
1380 };
1381 struct tySequence__4eRCaZmrYLLw2k30GPTiMw {
1382   TGenericSeq Sup;
1383   tyTuple__QeWl6B6ffS4pU6WWrtcrDw data[SEQ_DECL_SIZE];
1384 };
1385 struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
1386   TGenericSeq Sup;
1387   NimStringDesc* data[SEQ_DECL_SIZE];
1388 };
1389 struct tySequence__pK3qSsBZwdXd6qyUMkd5Jw {
1390   TGenericSeq Sup;
1391   tyObject_Cfile__i9cKq1ZGd1wgagjUEHLVFtg data[SEQ_DECL_SIZE];
1392 };
1393 struct tySequence__eiMlYcU7NrAOGD2H36QOOQ {
1394   TGenericSeq Sup;
1395   tyObject_ImportedModule__kyodd8HBOgfP30dipCL3JQ data[SEQ_DECL_SIZE];
1396 };
1397 struct tySequence__oYkV9aFZe0MXcEAprJaOUsA {
1398   TGenericSeq Sup;
1399   tyObject_TOptionEntry__H9ac5KbrDJVwT1zH5O83r7w* data[SEQ_DECL_SIZE];
1400 };
1401 struct tySequence__Mh9agqM29bm9aP5AUL1x7dZGA {
1402   TGenericSeq Sup;
1403   tyObject_TIdPair__AdFnD2YdADPeuJbG2YJ4vg data[SEQ_DECL_SIZE];
1404 };
1405 struct tySequence__arD7Tw6eD6lvOczWZl9buNg {
1406   TGenericSeq Sup;
1407   tyObject_TLib__NBMxlJ6g3utqUlplqTTHkA* data[SEQ_DECL_SIZE];
1408 };
1409 struct tySequence__jWKvSdankQPoT5bw9cBU9aiw {
1410   TGenericSeq Sup;
1411   tyObject_TInstantiationPair__HkXM4cJmOpk8zFcmq9c9c3gQ data[SEQ_DECL_SIZE];
1412 };
1413 struct tySequence__xSqu3cxq5WeFlOO3YgE6yA {
1414   TGenericSeq Sup;
1415   tyTuple__KNXySARiHvEh2wA9asnyYmw data[SEQ_DECL_SIZE];
1416 };
1417 struct tySequence__Bis5AbpONWcIRrPyPJS8Yw {
1418   TGenericSeq Sup;
1419   tyTuple__NAaJgGVgNmlGoqmiWxdOHQ data[SEQ_DECL_SIZE];
1420 };
1421 struct tySequence__E8pi9b5QNahsURYzXMjh3qw {
1422   TGenericSeq Sup;
1423   tyTuple__47w2DboNEPf69aPgubZdd7Q data[SEQ_DECL_SIZE];
1424 };
1425 struct tySequence__vGU8AyGT6KxtLJwEg0BpNw {
1426   TGenericSeq Sup;
1427   tyTuple__KvKIqRIx9anKcDMu8DPSkHw data[SEQ_DECL_SIZE];
1428 };
1429 struct tySequence__Hkw5zrAn53wlKDHdJF1GFA {
1430   TGenericSeq Sup;
1431   tyTuple__Y6Ewh3MCxsjd1bsriN6Gag data[SEQ_DECL_SIZE];
1432 };
1433 struct tySequence__vv5mGmK03BCr5e3LTZA5Hw {
1434   TGenericSeq Sup;
1435   tyObject_LazySym__rhF4Xi6CELPmWy539c1l6fA data[SEQ_DECL_SIZE];
1436 };
1437 struct tySequence__PXIzfWocnrafGz5p3CP5LA {
1438   TGenericSeq Sup;
1439   tyTuple__0q9cmhneJEKnQERTpXXdz6Q data[SEQ_DECL_SIZE];
1440 };
1441 struct tySequence__9bAGqSvkAaFL9bWjsEPslrFA {
1442   TGenericSeq Sup;
1443   NU32 data[SEQ_DECL_SIZE];
1444 };
1445 struct tySequence__29bS0n2QNyO1R7e0qMMOvLA {
1446   TGenericSeq Sup;
1447   tyObject_PackedNode__7lDGAZiNp4zbO65GEpoKow data[SEQ_DECL_SIZE];
1448 };
1449 struct tySequence__b89aLriiJnVTD186H6zNIgg {
1450   TGenericSeq Sup;
1451   tyTuple__Izx9aRSX9a0diDXD84jOS9aMQ data[SEQ_DECL_SIZE];
1452 };
1453 struct tySequence__REuPuHuSlOkZ0Q5oqzDrQg {
1454   TGenericSeq Sup;
1455   tyTuple__Q7r9caOmeWqQGZCIBHhGRUA data[SEQ_DECL_SIZE];
1456 };
1457 struct tySequence__I9aQmO9asXXWJ58UI9c8BCSzA {
1458   TGenericSeq Sup;
1459   tyTuple__7Wlwbz8zSe7Udyf7mmsd9cg data[SEQ_DECL_SIZE];
1460 };
1461 struct tySequence__NyaOkf8ZwxP6rkRF5TOkew {
1462   TGenericSeq Sup;
1463   tyTuple__XyJ8LOAZzVVXSsmt09b8uWw data[SEQ_DECL_SIZE];
1464 };
1465 struct tySequence__L9bOt8CaTEmIjgtuZvp6syg {
1466   TGenericSeq Sup;
1467   tyObject_PackedInstantiation__39cWRURu69agjI9c1ohiUmxiA data[SEQ_DECL_SIZE];
1468 };
1469 struct tySequence__im8UB2GsZvUaQ4a1wKGWhQ {
1470   TGenericSeq Sup;
1471   tyTuple__9aoobCDZB4x41HJSOmh0mwA data[SEQ_DECL_SIZE];
1472 };
1473 struct tySequence__xxnXDLpoqBo8zJzP9b1073g {
1474   TGenericSeq Sup;
1475   tyTuple__g0Q6Qx15nK53ce9aLo7YyrA data[SEQ_DECL_SIZE];
1476 };
1477 struct tySequence__DfmUmNgVGnYaiV1I6227tw {
1478   TGenericSeq Sup;
1479   tyObject_PackedSym__XjVn21MwvH8ij6CfopYZWw data[SEQ_DECL_SIZE];
1480 };
1481 struct tySequence__t8Uv4lEJ4lkuECvP9c6JMhA {
1482   TGenericSeq Sup;
1483   tyObject_PackedType__IhXsK7mrwumUBtEqbZ2BqA data[SEQ_DECL_SIZE];
1484 };
1485 struct tySequence__IHUFRsFxZNv7YydiUO2esQ {
1486   TGenericSeq Sup;
1487   NI64 data[SEQ_DECL_SIZE];
1488 };
1489 struct tySequence__vC9cvg0R8tfBaOXXi3sfMzw {
1490   TGenericSeq Sup;
1491   tyObject_PackedItemId__FzcXUzSZ9cNfGYsfibgjWlQ data[SEQ_DECL_SIZE];
1492 };
1493 struct tySequence__9bT7o0CflHuiE4VhmtqBPCw {
1494   TGenericSeq Sup;
1495   tyTuple__8x6vq4Dc9aLvKX9actMeR9avQ data[SEQ_DECL_SIZE];
1496 };
1497 struct tySequence__9cnx3zXnWzeclW8Ko4oUgAQ {
1498   TGenericSeq Sup;
1499   tyTuple__UvldbCB6B9ayi9bGYW7vJNLA data[SEQ_DECL_SIZE];
1500 };
1501 struct tySequence__ipEvhpHAmm8ZCn9bZAOdNYA {
1502   TGenericSeq Sup;
1503   tyObject_FullId__pfGm9bmVgXcP2kl6OfHhZgQ data[SEQ_DECL_SIZE];
1504 };
1505 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, skipTypes__ast_3735)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kinds);
1506 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isEmptyContainer__types_3617)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1507 static N_INLINE(void, nimZeroMem)(void* p, NI size);
1508 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
1509 N_LIB_PRIVATE N_NIMCALL(void, hashType__sighashes_462)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tySet_tyEnum_ConsiderFlag__9a9az8WnKmq9bvt8EXoSUES7g flags, tyArray__qtqsWM5aXmcpMIVmvq3kAA Result);
1510 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getOrDefault__liftdestructors_976)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key);
1511 static N_INLINE(NI, rawGet__liftdestructors_985)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc);
1512 N_LIB_PRIVATE N_NIMCALL(NI, hash__modulegraphs_8963)(tyArray__qtqsWM5aXmcpMIVmvq3kAA u);
1513 static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode);
1514 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, eqeq___modulegraphs_8959)(tyArray__qtqsWM5aXmcpMIVmvq3kAA a, tyArray__qtqsWM5aXmcpMIVmvq3kAA b);
1515 static N_INLINE(NI, nextTry__pureZcollectionsZtables_34)(NI h, NI maxHash);
1516 N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___liftdestructors_2260)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType__facALICuu8zUj0hjvbTLFg* val);
1517 static N_INLINE(NI, slotsNeeded__pureZcollectionsZtables_42)(NI count);
1518 N_LIB_PRIVATE N_NIMCALL(NI, nextPowerOfTwo__pureZmath_177)(NI x);
1519 N_LIB_PRIVATE N_NIMCALL(void*, newSeq)(TNimType* typ, NI len);
1520 N_LIB_PRIVATE N_NIMCALL(void, unsureAsgnRef)(void** dest, void* src);
1521 static N_INLINE(void, asgnRef)(void** dest, void* src);
1522 static N_INLINE(void, incRef__system_5300)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
1523 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y);
1524 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5262)(void* usr);
1525 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y);
1526 static N_INLINE(void, decRef__system_5307)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
1527 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y);
1528 static N_INLINE(void, rtlAddZCT__system_5305)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
1529 N_LIB_PRIVATE N_NOINLINE(void, addZCT__system_5256)(tyObject_CellSeq__Axo1XVm9aaQueTOldv8le5w* s, tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c);
1530 static N_INLINE(NIM_BOOL, mustRehash__liftdestructors_2433)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t);
1531 N_LIB_PRIVATE N_NIMCALL(void, enlarge__liftdestructors_2586)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw* t);
1532 N_LIB_PRIVATE N_NIMCALL(void, rawInsert__liftdestructors_2890)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw* t, tySequence__1U9bG8RcAedEeYkQLZjVFKA** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType__facALICuu8zUj0hjvbTLFg* val, NI hc, NI h);
1533 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
1534 static N_INLINE(NI, rawGetKnownHC__liftdestructors_3059)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc);
1535 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, getAttachedOp__modulegraphs_4011)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op);
1536 N_LIB_PRIVATE N_NIMCALL(void, setAttachedOp__modulegraphs_4407)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI module, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* value);
1537 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, symPrototype__liftdestructors_1862)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
1538 N_LIB_PRIVATE N_NIMCALL(tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA*, getIdent__idents_143)(tyObject_IdentCachecolonObjectType___TzLHS09bRH9a0TYLs39cqcNaw* ic, NimStringDesc* identifier);
1539 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);
1540 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3132)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
1541 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, copyString)(NimStringDesc* src);
1542 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makeVarType__semdata_775)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
1543 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getSysType__magicsys_60)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag kind);
1544 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, newProcType__ast_5056)(tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g id, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner);
1545 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3151)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x);
1546 N_LIB_PRIVATE N_NIMCALL(void, addParam__ast_5065)(tyObject_TType__facALICuu8zUj0hjvbTLFg* procType, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* param);
1547 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cyclicType__liftdestructors_1366)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1548 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canFormAcycle__types_762)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
1549 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, lastSon__ast_3743)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
1550 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3360)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI children);
1551 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1552 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeI__ast_3356)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1553 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3716)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym);
1554 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, produceSym__liftdestructors_40)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
1555 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, produceSymDistinctType__liftdestructors_1841)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
1556 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDeref__lowerings_11)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1557 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newNodeIT__ast_3378)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
1558 N_LIB_PRIVATE N_NIMCALL(void, add__ast_4797)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* son);
1559 N_LIB_PRIVATE N_NIMCALL(void, setAttachedOpPartial__modulegraphs_5577)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI module, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* value);
1560 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, destructorOverriden__liftdestructors_60)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1561 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newOpCall__liftdestructors_516)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x);
1562 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newAsgnStmt__liftdestructors_107)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri);
1563 N_LIB_PRIVATE N_NIMCALL(void, fillSeqOp__liftdestructors_858)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1564 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, setLenSeqCall__liftdestructors_815)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1565 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genBuiltin__liftdestructors_128)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic, NimStringDesc* name, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* i);
1566 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genBuiltin__liftdestructors_113)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic, NimStringDesc* name, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* i);
1567 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, createMagic__modulegraphs_9008)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, NimStringDesc* name, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg m);
1568 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);
1569 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, instantiateGeneric__liftdestructors_570)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst);
1570 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);
1571 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src);
1572 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size);
1573 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, typeToString__types_50)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw prefer);
1574 N_LIB_PRIVATE N_NIMCALL(NimStringDesc*, rawNewString)(NI space);
1575 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTree__ast_3392)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
1576 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSymNode__ast_3719)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* sym, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1577 N_LIB_PRIVATE N_NIMCALL(void, forallElements__liftdestructors_823)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1578 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, declareCounter__liftdestructors_752)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, NI64 first);
1579 N_LIB_PRIVATE N_NIMCALL(void, addVar__lowerings_75)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* father, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value);
1580 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newIntLit__lowerings_695)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NI64 value);
1581 N_LIB_PRIVATE N_NIMCALL(NI64, toInt64__int495056_88)(tyObject_Int128__9a9axPfb75jdWY25AamJewkA arg);
1582 N_LIB_PRIVATE N_NIMCALL(tyObject_Int128__9a9axPfb75jdWY25AamJewkA, firstOrd__types_1353)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1583 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genWhileLoop__liftdestructors_171)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* i, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest);
1584 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genLen__lowerings_710)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1585 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, at__liftdestructors_53)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* i, tyObject_TType__facALICuu8zUj0hjvbTLFg* elemType);
1586 N_LIB_PRIVATE N_NIMCALL(void, fillBody__liftdestructors_34)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1587 N_LIB_PRIVATE N_NIMCALL(void, defaultOp__liftdestructors_134)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1588 N_LIB_PRIVATE N_NIMCALL(void, atomicRefOp__liftdestructors_1376)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1589 N_LIB_PRIVATE N_NIMCALL(void, createTypeBoundOps__liftdestructors_47)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* orig, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
1590 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, declareTempOf__liftdestructors_767)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value);
1591 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isFinal__types_750)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1592 N_LIB_PRIVATE N_NIMCALL(void, addDestructorCall__liftdestructors_661)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* orig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x);
1593 static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4627)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1594 static N_INLINE(NIM_BOOL, isGenericParams__ast_4616)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1595 static N_INLINE(NIM_BOOL, useNoGc__liftdestructors_546)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1596 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, usesBuiltinArc__liftdestructors_540)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1597 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, searchTypeFor__types_470)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyProc__NbBRo5rVxVVQby3QsoZkZQ predicate);
1598 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, wrap__liftdestructors_543)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1599 static N_INLINE(NIM_BOOL, isGCedMem__ast_4203)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1600 static N_INLINE(NIM_BOOL, requiresDestructor__liftdestructors_562)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1601 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, containsGarbageCollectedRef__types_612)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
1602 N_LIB_PRIVATE N_NIMCALL(void, failedAssertImpl__systemZassertions_56)(NimStringDesc* msg);
1603 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, destructorCall__liftdestructors_233)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x);
1604 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genAddr__liftdestructors_158)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x);
1605 N_LIB_PRIVATE N_NIMCALL(void, checkSonsLen__semdata_1077)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, NI length, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
1606 N_LIB_PRIVATE N_NIMCALL(void, internalErrorImpl__msgs_1431)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NimStringDesc* errMsg, tyTuple__kN8up2W6YKc5YA9avn5mV5w info2);
1607 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genDeref__lowerings_626)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw k);
1608 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);
1609 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genIf__liftdestructors_183)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* action);
1610 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getCycleParam__liftdestructors_435)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c);
1611 static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n);
1612 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, lastSon__ast_4832)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1613 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, boolLit__liftdestructors_427)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NIM_BOOL value);
1614 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genAddrOf__lowerings_620)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag typeKind);
1615 N_LIB_PRIVATE N_NIMCALL(void, weakrefOp__liftdestructors_1540)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1616 N_LIB_PRIVATE N_NIMCALL(void, insert__liftdestructors_1579)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* item, NI i);
1617 N_LIB_PRIVATE N_NIMCALL(TGenericSeq*, setLengthSeqV2)(TGenericSeq* s, TNimType* typ, NI newLen);
1618 N_LIB_PRIVATE N_NIMCALL(void, atomicClosureOp__liftdestructors_1464)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1619 N_LIB_PRIVATE N_NIMCALL(void, closureOp__liftdestructors_1655)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1620 N_LIB_PRIVATE N_NIMCALL(void, ownedRefOp__liftdestructors_1620)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1621 N_LIB_PRIVATE N_NIMCALL(void, ownedClosureOp__liftdestructors_1722)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1622 N_LIB_PRIVATE N_NIMCALL(void, useSeqOrStrOp__liftdestructors_894)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1623 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newHookCall__liftdestructors_461)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1624 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, elemType__types_263)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t);
1625 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, considerUserDefinedOp__liftdestructors_710)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1626 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, considerAsgnOrSink__liftdestructors_586)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** field);
1627 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, sameType__types_1815)(tyObject_TType__facALICuu8zUj0hjvbTLFg* a, tyObject_TType__facALICuu8zUj0hjvbTLFg* b, tySet_tyEnum_TTypeCmpFlag__72pgRXSg7774cr9aCWVPORw flags);
1628 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDeepCopyCall__liftdestructors_534)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1629 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSeqCall__liftdestructors_795)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1630 N_LIB_PRIVATE N_NIMCALL(void, fillBodyObjT__liftdestructors_375)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1631 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isCaseObj__trees_158)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1632 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, ccgIntroducedPtr__ccgutils_153)(tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s, tyObject_TType__facALICuu8zUj0hjvbTLFg* retType);
1633 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTreeIT__ast_3431)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
1634 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, makePtrType__semdata_737)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
1635 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newTreeI__ast_3420)(tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw** children, NI childrenLen_0);
1636 N_LIB_PRIVATE N_NIMCALL(void, fillBodyObjTImpl__liftdestructors_360)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1637 N_LIB_PRIVATE N_NIMCALL(void, fillBodyObj__liftdestructors_252)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y, NIM_BOOL enforceDefaultOp);
1638 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, dotField__liftdestructors_96)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f);
1639 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, copyTree__ast_4431)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src);
1640 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n);
1641 N_LIB_PRIVATE N_NIMCALL(void, illFormedAstLocal__semdata_1074)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_ConfigRefcolonObjectType___LaK09ayL9alwKUad7rts0rTw* conf);
1642 N_LIB_PRIVATE N_NIMCALL(void, fillBodyTup__liftdestructors_73)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1643 N_LIB_PRIVATE N_NIMCALL(void, addIncStmt__liftdestructors_782)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* i);
1644 N_LIB_PRIVATE N_NIMCALL(void, fillStrOp__liftdestructors_1330)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1645 static N_INLINE(NIM_BOOL, lacksMTypeField__types_4105)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ);
1646 N_LIB_PRIVATE N_NIMCALL(void, genTypeFieldCopy__liftdestructors_1915)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y);
1647 N_LIB_PRIVATE N_NIMCALL(void, completePartialOp__modulegraphs_5629)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, NI module, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg op, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* value);
1648 N_LIB_PRIVATE N_NIMCALL(void, inst__liftdestructors_2075)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info);
1649 N_LIB_PRIVATE N_NIMCALL(void, patchBody__liftdestructors_2038)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen);
1650 static N_INLINE(NIM_BOOL, isTrival__liftdestructors_2101)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s);
1651 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genContainerOf__liftdestructors_188)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* objType, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* x);
1652 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__qGuGEzVTCUVhav67HrOxdQ_2 = {
1653 0x10, 0x08, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
1654 0x00}
1655 ;
1656 extern TNimType NTIkeyvaluepairseq__1U9bG8RcAedEeYkQLZjVFKA_;
1657 extern NIM_CONST tyArray__JXkBzVsE9bvmcpuZvrueLVg AttachedOpToStr__ast_3848;
1658 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_3, "dest", 4);
1659 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_4, "env", 3);
1660 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_5, "src", 3);
1661 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__qGuGEzVTCUVhav67HrOxdQ_6 = {
1662 0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
1663 0x00}
1664 ;
1665 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_7, "cyclic", 6);
1666 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__qGuGEzVTCUVhav67HrOxdQ_8 = {
1667 0x10, 0x88, 0x10, 0x00, 0x00, 0x40, 0x80, 0x10,
1668 0x00}
1669 ;
1670 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_9, "len", 3);
1671 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_10, "setLen", 6);
1672 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_11, "cannot generate destructor for generic type: ", 45);
1673 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_13, "/home/runner/work/nightlies/nightlies/nim/compiler/liftdestructors.nim", 70);
1674 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qGuGEzVTCUVhav67HrOxdQ_12 = {((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_13),
1675 ((NI) 328),
1676 ((NI) 14)}
1677 ;
1678 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_14, ":tmp", 4);
1679 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_15, "<", 1);
1680 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_16, "default", 7);
1681 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__qGuGEzVTCUVhav67HrOxdQ_17 = {
1682 0x10, 0x89, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
1683 0x00}
1684 ;
1685 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_18, "liftdestructors.nim(392, 14) `op != nil` ", 41);
1686 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_19, "liftdestructors.nim(393, 14) `op == t.destructor` ", 50);
1687 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_20, "wasMoved", 8);
1688 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_21, "type-bound operator could not be resolved", 41);
1689 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qGuGEzVTCUVhav67HrOxdQ_22 = {((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_13),
1690 ((NI) 400),
1691 ((NI) 17)}
1692 ;
1693 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_23, "alignof", 7);
1694 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_24, "nimRawDispose", 13);
1695 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_25, "nimDestroyAndDispose", 20);
1696 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_26, "getTypeInfoV2", 13);
1697 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_27, "nimDecRefIsLastCyclicStatic", 27);
1698 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_28, "nimDecRefIsLastCyclicDyn", 24);
1699 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_29, "nimDecRefIsLast", 15);
1700 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_30, "nimIncRefCyclic", 15);
1701 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_31, "nimIncRef", 9);
1702 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_32, "nimTraceRef", 11);
1703 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_33, "nimTraceRefDyn", 14);
1704 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_34, "nimDecWeakRef", 13);
1705 extern TNimType NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_;
1706 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_35, "accessEnv", 9);
1707 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_36, "deepCopy", 8);
1708 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__qGuGEzVTCUVhav67HrOxdQ_37 = {
1709 0x10, 0xa9, 0x00, 0x00, 0x00, 0x60, 0x80, 0x00,
1710 0x00}
1711 ;
1712 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_38, "move", 4);
1713 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_39, "liftdestructors.nim(542, 14) `t.destructor != nil` ", 51);
1714 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_40, "liftdestructors.nim(550, 14) `t.destructor != nil` ", 51);
1715 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_41, "newSeq", 6);
1716 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__qGuGEzVTCUVhav67HrOxdQ_42 = {
1717 0x10, 0xa9, 0xe0, 0x00, 0x00, 0xe0, 0x80, 0x00,
1718 0x00}
1719 ;
1720 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_43, "==", 2);
1721 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_44, "liftdestructors.nim(897, 38) `false` ", 37);
1722 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_45, "inc", 3);
1723 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_46, "liftdestructors.nim(510, 14) `t.destructor != nil` ", 51);
1724 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_47, "destroy", 7);
1725 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_48, "nimAsgnStrV2", 12);
1726 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_49, "liftdestructors.nim(566, 14) `t.destructor != nil` ", 51);
1727 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_50, "accessTypeField", 15);
1728 static NIM_CONST tySet_tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag TM__qGuGEzVTCUVhav67HrOxdQ_51 = {
1729 0x10, 0xa9, 0x80, 0x00, 0x00, 0xe0, 0x80, 0x00,
1730 0x00}
1731 ;
1732 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_52, "resolved destructor is generic", 30);
1733 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qGuGEzVTCUVhav67HrOxdQ_53 = {((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_13),
1734 ((NI) 1033),
1735 ((NI) 23)}
1736 ;
1737 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_54, "patching mDestroy with mDestroy\?", 32);
1738 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qGuGEzVTCUVhav67HrOxdQ_55 = {((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_13),
1739 ((NI) 1035),
1740 ((NI) 23)}
1741 ;
1742 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_56, "unresolved generic parameter", 28);
1743 static NIM_CONST tyTuple__kN8up2W6YKc5YA9avn5mV5w TM__qGuGEzVTCUVhav67HrOxdQ_57 = {((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_13),
1744 ((NI) 1056),
1745 ((NI) 16)}
1746 ;
1747 extern NIM_CONST tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q unknownLineInfo__lineinfos_280;
1748 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_58, "offsetof", 8);
1749 STRING_LITERAL(TM__qGuGEzVTCUVhav67HrOxdQ_59, "-", 1);
1750 extern tyObject_GcHeap__1TRH1TZMaVZTnLNcIHuNFQ gch__system_5209;
N_INLINE(void,nimSetMem__systemZmemory_7)1751 static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
1752 	void* T1_;
1753 	T1_ = (void*)0;
1754 	T1_ = memset(a, v, ((size_t) (size)));
1755 }
N_INLINE(void,nimZeroMem)1756 static N_INLINE(void, nimZeroMem)(void* p, NI size) {
1757 	nimSetMem__systemZmemory_7(p, ((int) 0), size);
1758 }
N_INLINE(NIM_BOOL,isFilled__pureZcollectionsZtables_31)1759 static N_INLINE(NIM_BOOL, isFilled__pureZcollectionsZtables_31)(NI hcode) {
1760 	NIM_BOOL result;
1761 	result = (NIM_BOOL)0;
1762 	result = !((hcode == ((NI) 0)));
1763 	return result;
1764 }
N_INLINE(NI,nextTry__pureZcollectionsZtables_34)1765 static N_INLINE(NI, nextTry__pureZcollectionsZtables_34)(NI h, NI maxHash) {
1766 	NI result;
1767 	result = (NI)0;
1768 	result = (NI)((NI)(h + ((NI) 1)) & maxHash);
1769 	return result;
1770 }
N_INLINE(NI,rawGet__liftdestructors_985)1771 static N_INLINE(NI, rawGet__liftdestructors_985)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI* hc) {
1772 	NI result;
1773 	NI h;
1774 	NI T10_;
1775 {	result = (NI)0;
1776 	(*hc) = hash__modulegraphs_8963(key);
1777 	{
1778 		if (!((*hc) == ((NI) 0))) goto LA3_;
1779 		(*hc) = ((NI) 314159265);
1780 	}
1781 	LA3_: ;
1782 	{
1783 		NI T7_;
1784 		T7_ = (t.data ? t.data->Sup.len : 0);
1785 		if (!(T7_ == ((NI) 0))) goto LA8_;
1786 		result = ((NI) -1);
1787 		goto BeforeRet_;
1788 	}
1789 	LA8_: ;
1790 	T10_ = ((t.data ? t.data->Sup.len : 0)-1);
1791 	h = (NI)((*hc) & T10_);
1792 	{
1793 		while (1) {
1794 			NIM_BOOL T13_;
1795 			NI T20_;
1796 			T13_ = (NIM_BOOL)0;
1797 			T13_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
1798 			if (!T13_) goto LA12;
1799 			{
1800 				NIM_BOOL T16_;
1801 				T16_ = (NIM_BOOL)0;
1802 				T16_ = (t.data->data[h].Field0 == (*hc));
1803 				if (!(T16_)) goto LA17_;
1804 				T16_ = eqeq___modulegraphs_8959(t.data->data[h].Field1, key);
1805 				LA17_: ;
1806 				if (!T16_) goto LA18_;
1807 				result = h;
1808 				goto BeforeRet_;
1809 			}
1810 			LA18_: ;
1811 			T20_ = ((t.data ? t.data->Sup.len : 0)-1);
1812 			h = nextTry__pureZcollectionsZtables_34(h, T20_);
1813 		} LA12: ;
1814 	}
1815 	result = (NI)(((NI) -1) - h);
1816 	}BeforeRet_: ;
1817 	return result;
1818 }
N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg *,getOrDefault__liftdestructors_976)1819 N_LIB_PRIVATE N_NIMCALL(tyObject_TType__facALICuu8zUj0hjvbTLFg*, getOrDefault__liftdestructors_976)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key) {
1820 	tyObject_TType__facALICuu8zUj0hjvbTLFg* result;
1821 	NI hcX60gensym113_;
1822 	NI indexX60gensym113_;
1823 	result = NIM_NIL;
1824 	hcX60gensym113_ = (NI)0;
1825 	indexX60gensym113_ = rawGet__liftdestructors_985(t, key, (&hcX60gensym113_));
1826 	{
1827 		if (!(((NI) 0) <= indexX60gensym113_)) goto LA3_;
1828 		result = t.data->data[indexX60gensym113_].Field2;
1829 	}
1830 	LA3_: ;
1831 	return result;
1832 }
N_INLINE(NI,slotsNeeded__pureZcollectionsZtables_42)1833 static N_INLINE(NI, slotsNeeded__pureZcollectionsZtables_42)(NI count) {
1834 	NI result;
1835 	result = (NI)0;
1836 	result = nextPowerOfTwo__pureZmath_177((NI)((NI)((NI)(((NI) (count)) * ((NI) 3)) / ((NI) 2)) + ((NI) 4)));
1837 	return result;
1838 }
N_INLINE(NI,pluspercent___system_696)1839 static N_INLINE(NI, pluspercent___system_696)(NI x, NI y) {
1840 	NI result;
1841 	result = (NI)0;
1842 	result = ((NI) ((NU)((NU32)(((NU) (x))) + (NU32)(((NU) (y))))));
1843 	return result;
1844 }
N_INLINE(void,incRef__system_5300)1845 static N_INLINE(void, incRef__system_5300)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1846 	(*c).refcount = pluspercent___system_696((*c).refcount, ((NI) 8));
1847 }
N_INLINE(NI,minuspercent___system_716)1848 static N_INLINE(NI, minuspercent___system_716)(NI x, NI y) {
1849 	NI result;
1850 	result = (NI)0;
1851 	result = ((NI) ((NU)((NU32)(((NU) (x))) - (NU32)(((NU) (y))))));
1852 	return result;
1853 }
N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g *,usrToCell__system_5262)1854 static N_INLINE(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*, usrToCell__system_5262)(void* usr) {
1855 	tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* result;
1856 	NI T1_;
1857 	result = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1858 	T1_ = (NI)0;
1859 	T1_ = minuspercent___system_716(((NI) (ptrdiff_t) (usr)), ((NI) 8));
1860 	result = ((tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*) (T1_));
1861 	return result;
1862 }
N_INLINE(NIM_BOOL,ltpercent___system_1005)1863 static N_INLINE(NIM_BOOL, ltpercent___system_1005)(NI x, NI y) {
1864 	NIM_BOOL result;
1865 	result = (NIM_BOOL)0;
1866 	result = ((NU32)(((NU) (x))) < (NU32)(((NU) (y))));
1867 	return result;
1868 }
N_INLINE(void,rtlAddZCT__system_5305)1869 static N_INLINE(void, rtlAddZCT__system_5305)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1870 	addZCT__system_5256((&gch__system_5209.zct), c);
1871 }
N_INLINE(void,decRef__system_5307)1872 static N_INLINE(void, decRef__system_5307)(tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* c) {
1873 	(*c).refcount = minuspercent___system_716((*c).refcount, ((NI) 8));
1874 	{
1875 		NIM_BOOL T3_;
1876 		T3_ = (NIM_BOOL)0;
1877 		T3_ = ltpercent___system_1005((*c).refcount, ((NI) 8));
1878 		if (!T3_) goto LA4_;
1879 		rtlAddZCT__system_5305(c);
1880 	}
1881 	LA4_: ;
1882 }
N_INLINE(void,asgnRef)1883 static N_INLINE(void, asgnRef)(void** dest, void* src) {
1884 	{
1885 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T5_;
1886 		if (!!((src == NIM_NIL))) goto LA3_;
1887 		T5_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1888 		T5_ = usrToCell__system_5262(src);
1889 		incRef__system_5300(T5_);
1890 	}
1891 	LA3_: ;
1892 	{
1893 		tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g* T10_;
1894 		if (!!(((*dest) == NIM_NIL))) goto LA8_;
1895 		T10_ = (tyObject_Cell__1zcF9cV8XIAtbN8h5HRUB8g*)0;
1896 		T10_ = usrToCell__system_5262((*dest));
1897 		decRef__system_5307(T10_);
1898 	}
1899 	LA8_: ;
1900 	(*dest) = src;
1901 }
N_INLINE(NIM_BOOL,mustRehash__liftdestructors_2433)1902 static N_INLINE(NIM_BOOL, mustRehash__liftdestructors_2433)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t) {
1903 	NIM_BOOL result;
1904 	NIM_BOOL T1_;
1905 	NI T2_;
1906 	NI T4_;
1907 	result = (NIM_BOOL)0;
1908 	T1_ = (NIM_BOOL)0;
1909 	T2_ = (t.data ? t.data->Sup.len : 0);
1910 	T1_ = ((NI)(T2_ * ((NI) 2)) < (NI)(t.counter * ((NI) 3)));
1911 	if (T1_) goto LA3_;
1912 	T4_ = (t.data ? t.data->Sup.len : 0);
1913 	T1_ = ((NI)(T4_ - t.counter) < ((NI) 4));
1914 	LA3_: ;
1915 	result = T1_;
1916 	return result;
1917 }
N_INLINE(void,nimCopyMem)1918 static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
1919 	void* T1_;
1920 	T1_ = (void*)0;
1921 	T1_ = memcpy(dest, source, ((size_t) (size)));
1922 }
N_NIMCALL(void,rawInsert__liftdestructors_2890)1923 N_LIB_PRIVATE N_NIMCALL(void, rawInsert__liftdestructors_2890)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw* t, tySequence__1U9bG8RcAedEeYkQLZjVFKA** data, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType__facALICuu8zUj0hjvbTLFg* val, NI hc, NI h) {
1924 	nimCopyMem((void*)(*data)->data[h].Field1, (NIM_CONST void*)key, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
1925 	asgnRef((void**) (&(*data)->data[h].Field2), val);
1926 	(*data)->data[h].Field0 = hc;
1927 }
N_NIMCALL(void,enlarge__liftdestructors_2586)1928 N_LIB_PRIVATE N_NIMCALL(void, enlarge__liftdestructors_2586)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw* t) {
1929 	tySequence__1U9bG8RcAedEeYkQLZjVFKA* n;
1930 	NI T1_;
1931 	tySequence__1U9bG8RcAedEeYkQLZjVFKA* T2_;
1932 	n = NIM_NIL;
1933 	T1_ = ((*t).data ? (*t).data->Sup.len : 0);
1934 	n = (tySequence__1U9bG8RcAedEeYkQLZjVFKA*) newSeq((&NTIkeyvaluepairseq__1U9bG8RcAedEeYkQLZjVFKA_), ((NI) ((NI)(T1_ * ((NI) 2)))));
1935 	T2_ = NIM_NIL;
1936 	T2_ = (*t).data;
1937 	unsureAsgnRef((void**) (&(*t).data), n);
1938 	n = T2_;
1939 	{
1940 		NI i;
1941 		NI colontmp_;
1942 		NI T4_;
1943 		NI res;
1944 		i = (NI)0;
1945 		colontmp_ = (NI)0;
1946 		T4_ = ((n ? n->Sup.len : 0)-1);
1947 		colontmp_ = T4_;
1948 		res = ((NI) 0);
1949 		{
1950 			while (1) {
1951 				NI eh;
1952 				if (!(res <= colontmp_)) goto LA6;
1953 				i = res;
1954 				eh = n->data[i].Field0;
1955 				{
1956 					NIM_BOOL T9_;
1957 					NI j;
1958 					NI T12_;
1959 					tyArray__qtqsWM5aXmcpMIVmvq3kAA T17_;
1960 					tyObject_TType__facALICuu8zUj0hjvbTLFg* T18_;
1961 					T9_ = (NIM_BOOL)0;
1962 					T9_ = isFilled__pureZcollectionsZtables_31(eh);
1963 					if (!T9_) goto LA10_;
1964 					T12_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
1965 					j = (NI)(eh & T12_);
1966 					{
1967 						while (1) {
1968 							NIM_BOOL T15_;
1969 							NI T16_;
1970 							T15_ = (NIM_BOOL)0;
1971 							T15_ = isFilled__pureZcollectionsZtables_31((*t).data->data[j].Field0);
1972 							if (!T15_) goto LA14;
1973 							T16_ = (((*t).data ? (*t).data->Sup.len : 0)-1);
1974 							j = nextTry__pureZcollectionsZtables_34(j, T16_);
1975 						} LA14: ;
1976 					}
1977 					nimCopyMem((void*)T17_, (NIM_CONST void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
1978 					nimZeroMem((void*)n->data[i].Field1, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
1979 					T18_ = NIM_NIL;
1980 					T18_ = n->data[i].Field2;
1981 					asgnRef((void**) (&n->data[i].Field2), NIM_NIL);
1982 					rawInsert__liftdestructors_2890(t, (&(*t).data), T17_, T18_, eh, j);
1983 				}
1984 				LA10_: ;
1985 				res += ((NI) 1);
1986 			} LA6: ;
1987 		}
1988 	}
1989 }
N_INLINE(NI,rawGetKnownHC__liftdestructors_3059)1990 static N_INLINE(NI, rawGetKnownHC__liftdestructors_3059)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, NI hc) {
1991 	NI result;
1992 	NI h;
1993 	NI T6_;
1994 {	result = (NI)0;
1995 	{
1996 		NI T3_;
1997 		T3_ = (t.data ? t.data->Sup.len : 0);
1998 		if (!(T3_ == ((NI) 0))) goto LA4_;
1999 		result = ((NI) -1);
2000 		goto BeforeRet_;
2001 	}
2002 	LA4_: ;
2003 	T6_ = ((t.data ? t.data->Sup.len : 0)-1);
2004 	h = (NI)(hc & T6_);
2005 	{
2006 		while (1) {
2007 			NIM_BOOL T9_;
2008 			NI T16_;
2009 			T9_ = (NIM_BOOL)0;
2010 			T9_ = isFilled__pureZcollectionsZtables_31(t.data->data[h].Field0);
2011 			if (!T9_) goto LA8;
2012 			{
2013 				NIM_BOOL T12_;
2014 				T12_ = (NIM_BOOL)0;
2015 				T12_ = (t.data->data[h].Field0 == hc);
2016 				if (!(T12_)) goto LA13_;
2017 				T12_ = eqeq___modulegraphs_8959(t.data->data[h].Field1, key);
2018 				LA13_: ;
2019 				if (!T12_) goto LA14_;
2020 				result = h;
2021 				goto BeforeRet_;
2022 			}
2023 			LA14_: ;
2024 			T16_ = ((t.data ? t.data->Sup.len : 0)-1);
2025 			h = nextTry__pureZcollectionsZtables_34(h, T16_);
2026 		} LA8: ;
2027 	}
2028 	result = (NI)(((NI) -1) - h);
2029 	}BeforeRet_: ;
2030 	return result;
2031 }
N_NIMCALL(void,X5BX5Deq___liftdestructors_2260)2032 N_LIB_PRIVATE N_NIMCALL(void, X5BX5Deq___liftdestructors_2260)(tyObject_Table__Ue6w4c82v7gc7t2qntTbAw* t, tyArray__qtqsWM5aXmcpMIVmvq3kAA key, tyObject_TType__facALICuu8zUj0hjvbTLFg* val) {
2033 	NI hc;
2034 	NI index;
2035 	{
2036 		NI T3_;
2037 		NI correctSizeX60gensym218_;
2038 		T3_ = ((*t).data ? (*t).data->Sup.len : 0);
2039 		if (!(T3_ == ((NI) 0))) goto LA4_;
2040 		correctSizeX60gensym218_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
2041 		(*t).counter = ((NI) 0);
2042 		unsureAsgnRef((void**) (&(*t).data), (tySequence__1U9bG8RcAedEeYkQLZjVFKA*) newSeq((&NTIkeyvaluepairseq__1U9bG8RcAedEeYkQLZjVFKA_), ((NI) (correctSizeX60gensym218_))));
2043 	}
2044 	LA4_: ;
2045 	hc = (NI)0;
2046 	index = rawGet__liftdestructors_985((*t), key, (&hc));
2047 	{
2048 		if (!(((NI) 0) <= index)) goto LA8_;
2049 		asgnRef((void**) (&(*t).data->data[index].Field2), val);
2050 	}
2051 	goto LA6_;
2052 	LA8_: ;
2053 	{
2054 		{
2055 			NI T13_;
2056 			NI correctSizeX60gensym221_;
2057 			T13_ = ((*t).data ? (*t).data->Sup.len : 0);
2058 			if (!(T13_ == ((NI) 0))) goto LA14_;
2059 			correctSizeX60gensym221_ = slotsNeeded__pureZcollectionsZtables_42(((NI) 32));
2060 			(*t).counter = ((NI) 0);
2061 			unsureAsgnRef((void**) (&(*t).data), (tySequence__1U9bG8RcAedEeYkQLZjVFKA*) newSeq((&NTIkeyvaluepairseq__1U9bG8RcAedEeYkQLZjVFKA_), ((NI) (correctSizeX60gensym221_))));
2062 		}
2063 		LA14_: ;
2064 		{
2065 			NIM_BOOL T18_;
2066 			T18_ = (NIM_BOOL)0;
2067 			T18_ = mustRehash__liftdestructors_2433((*t));
2068 			if (!T18_) goto LA19_;
2069 			enlarge__liftdestructors_2586(t);
2070 			index = rawGetKnownHC__liftdestructors_3059((*t), key, hc);
2071 		}
2072 		LA19_: ;
2073 		index = (NI)(((NI) -1) - index);
2074 		rawInsert__liftdestructors_2890(t, (&(*t).data), key, val, hc, index);
2075 		(*t).counter += ((NI) 1);
2076 	}
2077 	LA6_: ;
2078 }
N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g,nextSymId__ast_3132)2079 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextSymId__ast_3132)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
2080 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
2081 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
2082 	(*x).symId += ((NI) 1);
2083 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
2084 	result.module = (*x).module;
2085 	result.item = (*x).symId;
2086 	return result;
2087 }
N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g,nextTypeId__ast_3151)2088 static N_INLINE(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g, nextTypeId__ast_3151)(tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* x) {
2089 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g result;
2090 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
2091 	(*x).typeId_0 += ((NI) 1);
2092 	nimZeroMem((void*)(&result), sizeof(tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g));
2093 	result.module = (*x).module;
2094 	result.item = (*x).typeId_0;
2095 	return result;
2096 }
N_NIMCALL(NIM_BOOL,cyclicType__liftdestructors_1366)2097 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, cyclicType__liftdestructors_1366)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
2098 	NIM_BOOL result;
2099 	result = (NIM_BOOL)0;
2100 	switch ((*t).kind) {
2101 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
2102 	{
2103 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T2_;
2104 		T2_ = NIM_NIL;
2105 		T2_ = lastSon__ast_3743(t);
2106 		result = canFormAcycle__types_762(T2_);
2107 	}
2108 	break;
2109 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
2110 	{
2111 		result = ((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
2112 	}
2113 	break;
2114 	default:
2115 	{
2116 		result = NIM_FALSE;
2117 	}
2118 	break;
2119 	}
2120 	return result;
2121 }
N_INLINE(NI,len__ast_3198)2122 static N_INLINE(NI, len__ast_3198)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
2123 	NI result;
2124 	NI T1_;
2125 	result = (NI)0;
2126 	T1_ = ((*n)._kind_6.sons ? (*n)._kind_6.sons->Sup.len : 0);
2127 	result = T1_;
2128 	return result;
2129 }
N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ *,symPrototype__liftdestructors_1862)2130 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, symPrototype__liftdestructors_1862)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* owner, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
2131 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
2132 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* procname;
2133 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T1_;
2134 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* dest;
2135 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T2_;
2136 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T3_;
2137 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* src;
2138 	NimStringDesc* T4_;
2139 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T10_;
2140 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T11_;
2141 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T17_;
2142 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n;
2143 	result = NIM_NIL;
2144 	procname = getIdent__idents_143((*g).cache, AttachedOpToStr__ast_3848[(kind)- 0]);
2145 	T1_ = nextSymId__ast_3132(idgen);
2146 	result = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 12), procname, T1_, owner, info, 0);
2147 	T2_ = NIM_NIL;
2148 	T2_ = getIdent__idents_143((*g).cache, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_3));
2149 	T3_ = nextSymId__ast_3132(idgen);
2150 	dest = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), T2_, T3_, result, info, 0);
2151 	T4_ = NIM_NIL;
2152 	{
2153 		if (!(kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3))) goto LA7_;
2154 		T4_ = copyString(((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_4));
2155 	}
2156 	goto LA5_;
2157 	LA7_: ;
2158 	{
2159 		T4_ = copyString(((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_5));
2160 	}
2161 	LA5_: ;
2162 	T10_ = NIM_NIL;
2163 	T10_ = getIdent__idents_143((*g).cache, T4_);
2164 	T11_ = nextSymId__ast_3132(idgen);
2165 	src = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), T10_, T11_, result, info, 0);
2166 	asgnRef((void**) (&(*dest).typ), makeVarType__semdata_775((*typ).owner, typ, idgen, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23)));
2167 	{
2168 		if (!(kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3))) goto LA14_;
2169 		asgnRef((void**) (&(*src).typ), getSysType__magicsys_60(g, info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26)));
2170 	}
2171 	goto LA12_;
2172 	LA14_: ;
2173 	{
2174 		asgnRef((void**) (&(*src).typ), typ);
2175 	}
2176 	LA12_: ;
2177 	T17_ = nextTypeId__ast_3151(idgen);
2178 	asgnRef((void**) (&(*result).typ), newProcType__ast_5056(info, T17_, owner));
2179 	addParam__ast_5065((*result).typ, dest);
2180 	{
2181 		if (!!((kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0)))) goto LA20_;
2182 		addParam__ast_5065((*result).typ, src);
2183 	}
2184 	LA20_: ;
2185 	{
2186 		NIM_BOOL T24_;
2187 		NIM_BOOL T25_;
2188 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T28_;
2189 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* cycleParam;
2190 		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T31_;
2191 		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T32_;
2192 		T24_ = (NIM_BOOL)0;
2193 		T25_ = (NIM_BOOL)0;
2194 		T25_ = (kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1));
2195 		if (!(T25_)) goto LA26_;
2196 		T25_ = ((*(*g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 5));
2197 		LA26_: ;
2198 		T24_ = T25_;
2199 		if (!(T24_)) goto LA27_;
2200 		T28_ = NIM_NIL;
2201 		T28_ = skipTypes__ast_3735(typ, TM__qGuGEzVTCUVhav67HrOxdQ_6);
2202 		T24_ = cyclicType__liftdestructors_1366(T28_);
2203 		LA27_: ;
2204 		if (!T24_) goto LA29_;
2205 		T31_ = NIM_NIL;
2206 		T31_ = getIdent__idents_143((*g).cache, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_7));
2207 		T32_ = nextSymId__ast_3132(idgen);
2208 		cycleParam = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 3), T31_, T32_, result, info, 0);
2209 		asgnRef((void**) (&(*cycleParam).typ), getSysType__magicsys_60(g, info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
2210 		addParam__ast_5065((*result).typ, cycleParam);
2211 	}
2212 	LA29_: ;
2213 	n = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79), info, ((NI) 7));
2214 	{
2215 		NI i;
2216 		NI colontmp_;
2217 		NI i_2;
2218 		i = (NI)0;
2219 		colontmp_ = (NI)0;
2220 		colontmp_ = len__ast_3198(n);
2221 		i_2 = ((NI) 0);
2222 		{
2223 			while (1) {
2224 				if (!(i_2 < colontmp_)) goto LA35;
2225 				i = i_2;
2226 				asgnRef((void**) (&(*n)._kind_6.sons->data[i]), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), info));
2227 				i_2 += ((NI) 1);
2228 			} LA35: ;
2229 		}
2230 	}
2231 	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(result));
2232 	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 3)]), (*(*result).typ).n);
2233 	asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 6)]), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), info));
2234 	asgnRef((void**) (&(*result).ast), n);
2235 	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2)) & 63);
2236 	(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 39)) & 63);
2237 	return result;
2238 }
N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ *,produceSymDistinctType__liftdestructors_1841)2239 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, produceSymDistinctType__liftdestructors_1841)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
2240 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
2241 	tyObject_TType__facALICuu8zUj0hjvbTLFg* baseType;
2242 	result = NIM_NIL;
2243 	baseType = (*typ).sons->data[((NI) 0)];
2244 	{
2245 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T3_;
2246 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T6_;
2247 		T3_ = NIM_NIL;
2248 		T3_ = getAttachedOp__modulegraphs_4011(g, baseType, kind);
2249 		if (!(T3_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA4_;
2250 		T6_ = NIM_NIL;
2251 		T6_ = produceSym__liftdestructors_40(g, c, baseType, kind, info, idgen);
2252 		(void)(T6_);
2253 	}
2254 	LA4_: ;
2255 	result = getAttachedOp__modulegraphs_4011(g, baseType, kind);
2256 	setAttachedOp__modulegraphs_4407(g, ((NI) ((*idgen).module)), typ, kind, result);
2257 	return result;
2258 }
N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newDeref__lowerings_11)2259 static N_INLINE(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDeref__lowerings_11)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
2260 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2261 	result = NIM_NIL;
2262 	result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65), (*n).info, (*(*n).typ).sons->data[((NI) 0)]);
2263 	add__ast_4797(result, n);
2264 	return result;
2265 }
N_NIMCALL(NIM_BOOL,destructorOverriden__liftdestructors_60)2266 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, destructorOverriden__liftdestructors_60)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
2267 	NIM_BOOL result;
2268 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op;
2269 	NIM_BOOL T1_;
2270 	result = (NIM_BOOL)0;
2271 	op = getAttachedOp__modulegraphs_4011(g, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
2272 	T1_ = (NIM_BOOL)0;
2273 	T1_ = !((op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
2274 	if (!(T1_)) goto LA2_;
2275 	T1_ = (((*op).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35))&63U)))!=0);
2276 	LA2_: ;
2277 	result = T1_;
2278 	return result;
2279 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newOpCall__liftdestructors_516)2280 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newOpCall__liftdestructors_516)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) {
2281 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2282 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
2283 	result = NIM_NIL;
2284 	result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*x).info, (*(*op).typ).sons->data[((NI) 0)]);
2285 	T1_ = NIM_NIL;
2286 	T1_ = newSymNode__ast_3716(op);
2287 	add__ast_4797(result, T1_);
2288 	add__ast_4797(result, x);
2289 	{
2290 		if (!!((((*op).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 43))&63U)))!=0))) goto LA4_;
2291 		(*c).canRaise = NIM_TRUE;
2292 	}
2293 	LA4_: ;
2294 	return result;
2295 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newAsgnStmt__liftdestructors_107)2296 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newAsgnStmt__liftdestructors_107)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* le, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* ri) {
2297 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2298 	result = NIM_NIL;
2299 	result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 73), (*le).info, ((NI) 2));
2300 	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), le);
2301 	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), ri);
2302 	return result;
2303 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,genBuiltin__liftdestructors_113)2304 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genBuiltin__liftdestructors_113)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic, NimStringDesc* name, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* i) {
2305 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2306 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T1_;
2307 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
2308 	result = NIM_NIL;
2309 	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*i).info);
2310 	T1_ = NIM_NIL;
2311 	T1_ = createMagic__modulegraphs_9008(g, idgen, name, magic);
2312 	T2_ = NIM_NIL;
2313 	T2_ = newSymNode__ast_3716(T1_);
2314 	add__ast_4797(result, T2_);
2315 	add__ast_4797(result, i);
2316 	return result;
2317 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,genBuiltin__liftdestructors_128)2318 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genBuiltin__liftdestructors_128)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg magic, NimStringDesc* name, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* i) {
2319 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2320 	result = NIM_NIL;
2321 	result = genBuiltin__liftdestructors_113((*c).g, (*c).idgen, magic, name, i);
2322 	return result;
2323 }
N_INLINE(void,copyMem__system_1727)2324 static N_INLINE(void, copyMem__system_1727)(void* dest, void* source, NI size) {
2325 	nimCopyMem(dest, source, size);
2326 }
N_INLINE(void,appendString)2327 static N_INLINE(void, appendString)(NimStringDesc* dest, NimStringDesc* src) {
2328 	{
2329 		if (!!((src == ((NimStringDesc*) NIM_NIL)))) goto LA3_;
2330 		copyMem__system_1727(((void*) ((&(*dest).data[(*dest).Sup.len]))), ((void*) ((*src).data)), ((NI) ((NI)((*src).Sup.len + ((NI) 1)))));
2331 		(*dest).Sup.len += (*src).Sup.len;
2332 	}
2333 	LA3_: ;
2334 }
N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ *,instantiateGeneric__liftdestructors_570)2335 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, instantiateGeneric__liftdestructors_570)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TType__facALICuu8zUj0hjvbTLFg* typeInst) {
2336 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
2337 	result = NIM_NIL;
2338 	{
2339 		NIM_BOOL T3_;
2340 		T3_ = (NIM_BOOL)0;
2341 		T3_ = !(((*c).c == ((tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug*) NIM_NIL)));
2342 		if (!(T3_)) goto LA4_;
2343 		T3_ = !((typeInst == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
2344 		LA4_: ;
2345 		if (!T3_) goto LA5_;
2346 		result = (*(*c).c).instTypeBoundOp((*c).c, op, typeInst, (*c).info, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1), ((NI) 1));
2347 	}
2348 	goto LA1_;
2349 	LA5_: ;
2350 	{
2351 		NimStringDesc* T8_;
2352 		NimStringDesc* T9_;
2353 		T8_ = NIM_NIL;
2354 		T9_ = NIM_NIL;
2355 		T9_ = typeToString__types_50(t, ((tyEnum_TPreferedDesc__tnd4qt9c4xddV8oKV5zyusw) 0));
2356 		T8_ = rawNewString((T9_ ? T9_->Sup.len : 0) + 45);
2357 appendString(T8_, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_11));
2358 appendString(T8_, T9_);
2359 		liMessage__msgs_1118((*(*c).g).config, (*c).info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), T8_, ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__qGuGEzVTCUVhav67HrOxdQ_12, NIM_FALSE);
2360 		result = ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL);
2361 	}
2362 	LA1_: ;
2363 	return result;
2364 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,setLenSeqCall__liftdestructors_815)2365 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, setLenSeqCall__liftdestructors_815)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
2366 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2367 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lenCall;
2368 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op;
2369 	tyArray__T6RKPw8xfAeNaoei9aZGzXg T1_;
2370 	result = NIM_NIL;
2371 	lenCall = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_9), y);
2372 	asgnRef((void**) (&(*lenCall).typ), getSysType__magicsys_60((*c).g, (*x).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31)));
2373 	op = getSysMagic__magicsys_29((*c).g, (*x).info, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_10), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 138));
2374 	op = instantiateGeneric__liftdestructors_570(c, op, t, t);
2375 	nimZeroMem((void*)T1_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
2376 	T1_[0] = newSymNode__ast_3719(op, (*x).info);
2377 	T1_[1] = x;
2378 	T1_[2] = lenCall;
2379 	result = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T1_, 3);
2380 	return result;
2381 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,declareCounter__liftdestructors_752)2382 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, declareCounter__liftdestructors_752)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, NI64 first) {
2383 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2384 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* temp;
2385 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
2386 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T2_;
2387 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
2388 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
2389 	result = NIM_NIL;
2390 	T1_ = NIM_NIL;
2391 	T1_ = getIdent__idents_143((*(*c).g).cache, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_14));
2392 	T2_ = nextSymId__ast_3132((*c).idgen);
2393 	temp = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5), T1_, T2_, (*c).fn, (*c).info, 0);
2394 	asgnRef((void**) (&(*temp).typ), getSysType__magicsys_60((*c).g, (*body).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31)));
2395 	(*temp).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2)) & 63);
2396 	v = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*c).info);
2397 	result = newSymNode__ast_3716(temp);
2398 	T3_ = NIM_NIL;
2399 	T3_ = newIntLit__lowerings_695((*c).g, (*body).info, first);
2400 	addVar__lowerings_75(v, result, T3_);
2401 	add__ast_4797(body, v);
2402 	return result;
2403 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,genWhileLoop__liftdestructors_171)2404 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genWhileLoop__liftdestructors_171)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* i, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dest) {
2405 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2406 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cmp;
2407 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
2408 	result = NIM_NIL;
2409 	result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 96), (*c).info, ((NI) 2));
2410 	cmp = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 72), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_15), i);
2411 	T1_ = NIM_NIL;
2412 	T1_ = genLen__lowerings_710((*c).g, dest);
2413 	add__ast_4797(cmp, T1_);
2414 	asgnRef((void**) (&(*cmp).typ), getSysType__magicsys_60((*c).g, (*c).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
2415 	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), cmp);
2416 	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*c).info));
2417 	return result;
2418 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,at__liftdestructors_53)2419 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, at__liftdestructors_53)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* a, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* i, tyObject_TType__facALICuu8zUj0hjvbTLFg* elemType) {
2420 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2421 	result = NIM_NIL;
2422 	result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 42), (*a).info, ((NI) 2));
2423 	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), a);
2424 	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), i);
2425 	asgnRef((void**) (&(*result).typ), elemType);
2426 	return result;
2427 }
N_NIMCALL(void,defaultOp__liftdestructors_134)2428 N_LIB_PRIVATE N_NIMCALL(void, defaultOp__liftdestructors_134)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
2429 	{
2430 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
2431 		if (!((22 &((NU8)1<<((NU)((*c).kind)&7U)))!=0)) goto LA3_;
2432 		T5_ = NIM_NIL;
2433 		T5_ = newAsgnStmt__liftdestructors_107(x, y);
2434 		add__ast_4797(body, T5_);
2435 	}
2436 	goto LA1_;
2437 	LA3_: ;
2438 	{
2439 		NIM_BOOL T7_;
2440 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
2441 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
2442 		T7_ = (NIM_BOOL)0;
2443 		T7_ = ((*c).kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
2444 		if (!(T7_)) goto LA8_;
2445 		T7_ = (*c).addMemReset;
2446 		LA8_: ;
2447 		if (!T7_) goto LA9_;
2448 		call = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 152), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_16), x);
2449 		asgnRef((void**) (&(*call).typ), t);
2450 		T11_ = NIM_NIL;
2451 		T11_ = newAsgnStmt__liftdestructors_107(x, call);
2452 		add__ast_4797(body, T11_);
2453 	}
2454 	goto LA1_;
2455 	LA9_: ;
2456 	LA1_: ;
2457 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,declareTempOf__liftdestructors_767)2458 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, declareTempOf__liftdestructors_767)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* value) {
2459 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2460 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* temp;
2461 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
2462 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T2_;
2463 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
2464 	result = NIM_NIL;
2465 	T1_ = NIM_NIL;
2466 	T1_ = getIdent__idents_143((*(*c).g).cache, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_14));
2467 	T2_ = nextSymId__ast_3132((*c).idgen);
2468 	temp = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5), T1_, T2_, (*c).fn, (*c).info, 0);
2469 	asgnRef((void**) (&(*temp).typ), (*value).typ);
2470 	(*temp).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2)) & 63);
2471 	v = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*c).info);
2472 	result = newSymNode__ast_3716(temp);
2473 	addVar__lowerings_75(v, result, value);
2474 	add__ast_4797(body, v);
2475 	return result;
2476 }
N_INLINE(NIM_BOOL,isGenericParams__ast_4616)2477 static N_INLINE(NIM_BOOL, isGenericParams__ast_4616)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
2478 	NIM_BOOL result;
2479 	NIM_BOOL T1_;
2480 	result = (NIM_BOOL)0;
2481 	T1_ = (NIM_BOOL)0;
2482 	T1_ = !((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
2483 	if (!(T1_)) goto LA2_;
2484 	T1_ = ((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 75));
2485 	LA2_: ;
2486 	result = T1_;
2487 	return result;
2488 }
N_INLINE(NIM_BOOL,isGenericRoutine__ast_4627)2489 static N_INLINE(NIM_BOOL, isGenericRoutine__ast_4627)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
2490 	NIM_BOOL result;
2491 	NIM_BOOL T1_;
2492 	NIM_BOOL T2_;
2493 	result = (NIM_BOOL)0;
2494 	T1_ = (NIM_BOOL)0;
2495 	T2_ = (NIM_BOOL)0;
2496 	T2_ = !((n == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
2497 	if (!(T2_)) goto LA3_;
2498 	T2_ = ((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 51) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 52) || (*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 79) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 84) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 159));
2499 	LA3_: ;
2500 	T1_ = T2_;
2501 	if (!(T1_)) goto LA4_;
2502 	T1_ = isGenericParams__ast_4616((*n)._kind_6.sons->data[((NI) 2)]);
2503 	LA4_: ;
2504 	result = T1_;
2505 	return result;
2506 }
N_INLINE(NIM_BOOL,isGCedMem__ast_4203)2507 static N_INLINE(NIM_BOOL, isGCedMem__ast_4203)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
2508 	NIM_BOOL result;
2509 	NIM_BOOL T1_;
2510 	NIM_BOOL T3_;
2511 	result = (NIM_BOOL)0;
2512 	T1_ = (NIM_BOOL)0;
2513 	T1_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24));
2514 	if (T1_) goto LA2_;
2515 	T3_ = (NIM_BOOL)0;
2516 	T3_ = ((*t).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
2517 	if (!(T3_)) goto LA4_;
2518 	T3_ = ((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9));
2519 	LA4_: ;
2520 	T1_ = T3_;
2521 	LA2_: ;
2522 	result = T1_;
2523 	return result;
2524 }
N_NIMCALL(NIM_BOOL,wrap__liftdestructors_543)2525 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, wrap__liftdestructors_543)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
2526 	NIM_BOOL result;
2527 	result = (NIM_BOOL)0;
2528 	result = isGCedMem__ast_4203(t);
2529 	return result;
2530 }
N_NIMCALL(NIM_BOOL,usesBuiltinArc__liftdestructors_540)2531 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, usesBuiltinArc__liftdestructors_540)(tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
2532 	NIM_BOOL result;
2533 	result = (NIM_BOOL)0;
2534 	result = searchTypeFor__types_470(t, wrap__liftdestructors_543);
2535 	return result;
2536 }
N_INLINE(NIM_BOOL,useNoGc__liftdestructors_546)2537 static N_INLINE(NIM_BOOL, useNoGc__liftdestructors_546)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
2538 	NIM_BOOL result;
2539 	NIM_BOOL T1_;
2540 	NIM_BOOL T3_;
2541 	result = (NIM_BOOL)0;
2542 	T1_ = (NIM_BOOL)0;
2543 	T1_ = (((*(*(*c).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0);
2544 	if (!(T1_)) goto LA2_;
2545 	T3_ = (NIM_BOOL)0;
2546 	T3_ = !(((4194320 & (*t).flags) == 0));
2547 	if (T3_) goto LA4_;
2548 	T3_ = usesBuiltinArc__liftdestructors_540(t);
2549 	LA4_: ;
2550 	T1_ = T3_;
2551 	LA2_: ;
2552 	result = T1_;
2553 	return result;
2554 }
N_INLINE(NIM_BOOL,requiresDestructor__liftdestructors_562)2555 static N_INLINE(NIM_BOOL, requiresDestructor__liftdestructors_562)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t) {
2556 	NIM_BOOL result;
2557 	NIM_BOOL T1_;
2558 	result = (NIM_BOOL)0;
2559 	T1_ = (NIM_BOOL)0;
2560 	T1_ = (((*(*(*c).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0);
2561 	if (!(T1_)) goto LA2_;
2562 	T1_ = containsGarbageCollectedRef__types_612(t);
2563 	LA2_: ;
2564 	result = T1_;
2565 	return result;
2566 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,genAddr__liftdestructors_158)2567 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genAddr__liftdestructors_158)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) {
2568 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2569 	result = NIM_NIL;
2570 	{
2571 		if (!((*x).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 65))) goto LA3_;
2572 		checkSonsLen__semdata_1077(x, ((NI) 1), (*(*c).g).config);
2573 		result = (*x)._kind_6.sons->data[((NI) 0)];
2574 	}
2575 	goto LA1_;
2576 	LA3_: ;
2577 	{
2578 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T6_;
2579 		T6_ = NIM_NIL;
2580 		T6_ = makeVarType__semdata_775((*(*x).typ).owner, (*x).typ, (*c).idgen, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23));
2581 		result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 64), (*x).info, T6_);
2582 		add__ast_4797(result, x);
2583 	}
2584 	LA1_: ;
2585 	return result;
2586 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,destructorCall__liftdestructors_233)2587 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, destructorCall__liftdestructors_233)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) {
2588 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2589 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* destroy;
2590 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
2591 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
2592 	result = NIM_NIL;
2593 	destroy = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*x).info, (*(*op).typ).sons->data[((NI) 0)]);
2594 	T1_ = NIM_NIL;
2595 	T1_ = newSymNode__ast_3716(op);
2596 	add__ast_4797(destroy, T1_);
2597 	T2_ = NIM_NIL;
2598 	T2_ = genAddr__liftdestructors_158(c, x);
2599 	add__ast_4797(destroy, T2_);
2600 	{
2601 		if (!!((((*op).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 43))&63U)))!=0))) goto LA5_;
2602 		(*c).canRaise = NIM_TRUE;
2603 	}
2604 	LA5_: ;
2605 	{
2606 		tyArray__AB6yfoUgfWM2NtGe9bzkCmw T11_;
2607 		if (!(*c).addMemReset) goto LA9_;
2608 		nimZeroMem((void*)T11_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
2609 		T11_[0] = destroy;
2610 		T11_[1] = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 149), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_20), x);
2611 		result = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), T11_, 2);
2612 	}
2613 	goto LA7_;
2614 	LA9_: ;
2615 	{
2616 		result = destroy;
2617 	}
2618 	LA7_: ;
2619 	return result;
2620 }
N_NIMCALL(void,addDestructorCall__liftdestructors_661)2621 N_LIB_PRIVATE N_NIMCALL(void, addDestructorCall__liftdestructors_661)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* orig, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x) {
2622 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
2623 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op;
2624 	t = skipTypes__ast_3735(orig, TM__qGuGEzVTCUVhav67HrOxdQ_17);
2625 	op = getAttachedOp__modulegraphs_4011((*c).g, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
2626 	{
2627 		NIM_BOOL T3_;
2628 		T3_ = (NIM_BOOL)0;
2629 		T3_ = !((op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
2630 		if (!(T3_)) goto LA4_;
2631 		T3_ = (((*op).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35))&63U)))!=0);
2632 		LA4_: ;
2633 		if (!T3_) goto LA5_;
2634 		{
2635 			NIM_BOOL T9_;
2636 			T9_ = (NIM_BOOL)0;
2637 			T9_ = isGenericRoutine__ast_4627((*op).ast);
2638 			if (!T9_) goto LA10_;
2639 			op = instantiateGeneric__liftdestructors_570(c, op, t, (*t).typeInst);
2640 			setAttachedOp__modulegraphs_4407((*c).g, ((NI) ((*(*c).idgen).module)), t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0), op);
2641 		}
2642 		LA10_: ;
2643 	}
2644 	LA5_: ;
2645 	{
2646 		NIM_BOOL T14_;
2647 		NIM_BOOL T16_;
2648 		T14_ = (NIM_BOOL)0;
2649 		T14_ = (op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
2650 		if (!(T14_)) goto LA15_;
2651 		T16_ = (NIM_BOOL)0;
2652 		T16_ = useNoGc__liftdestructors_546((&(*c)), t);
2653 		if (T16_) goto LA17_;
2654 		T16_ = requiresDestructor__liftdestructors_562((&(*c)), t);
2655 		LA17_: ;
2656 		T14_ = T16_;
2657 		LA15_: ;
2658 		if (!T14_) goto LA18_;
2659 		op = produceSym__liftdestructors_40((*c).g, (*c).c, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0), (*c).info, (*c).idgen);
2660 		{
2661 			if (!!(!((op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))))) goto LA22_;
2662 			failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_18));
2663 		}
2664 		LA22_: ;
2665 		{
2666 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T26_;
2667 			T26_ = NIM_NIL;
2668 			T26_ = getAttachedOp__modulegraphs_4011((*c).g, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
2669 			if (!!((op == T26_))) goto LA27_;
2670 			failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_19));
2671 		}
2672 		LA27_: ;
2673 	}
2674 	LA18_: ;
2675 	{
2676 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
2677 		if (!!((op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA31_;
2678 		T33_ = NIM_NIL;
2679 		T33_ = destructorCall__liftdestructors_233(c, op, x);
2680 		add__ast_4797(body, T33_);
2681 	}
2682 	goto LA29_;
2683 	LA31_: ;
2684 	{
2685 		NIM_BOOL T35_;
2686 		T35_ = (NIM_BOOL)0;
2687 		T35_ = useNoGc__liftdestructors_546((&(*c)), t);
2688 		if (!T35_) goto LA36_;
2689 		internalErrorImpl__msgs_1431((*(*c).g).config, (*c).info, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_21), TM__qGuGEzVTCUVhav67HrOxdQ_22);
2690 	}
2691 	goto LA29_;
2692 	LA36_: ;
2693 	LA29_: ;
2694 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,genIf__liftdestructors_183)2695 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genIf__liftdestructors_183)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* action) {
2696 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2697 	tyArray__jlWPjgtbdjE069arIWHC9c9bg T1_;
2698 	tyArray__AB6yfoUgfWM2NtGe9bzkCmw T2_;
2699 	result = NIM_NIL;
2700 	nimZeroMem((void*)T1_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
2701 	nimZeroMem((void*)T2_, sizeof(tyArray__AB6yfoUgfWM2NtGe9bzkCmw));
2702 	T2_[0] = cond;
2703 	T2_[1] = action;
2704 	T1_[0] = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 86), T2_, 2);
2705 	result = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 92), T1_, 1);
2706 	return result;
2707 }
N_INLINE(NI,len__ast_4002)2708 static N_INLINE(NI, len__ast_4002)(tyObject_TType__facALICuu8zUj0hjvbTLFg* n) {
2709 	NI result;
2710 	NI T1_;
2711 	result = (NI)0;
2712 	T1_ = ((*n).sons ? (*n).sons->Sup.len : 0);
2713 	result = T1_;
2714 	return result;
2715 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,boolLit__liftdestructors_427)2716 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, boolLit__liftdestructors_427)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, NIM_BOOL value) {
2717 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2718 	result = NIM_NIL;
2719 	result = newIntLit__lowerings_695(g, info, ((NI64) (value)));
2720 	asgnRef((void**) (&(*result).typ), getSysType__magicsys_60(g, info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
2721 	return result;
2722 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,getCycleParam__liftdestructors_435)2723 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, getCycleParam__liftdestructors_435)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c) {
2724 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
2725 	result = NIM_NIL;
2726 	{
2727 		NI T3_;
2728 		T3_ = (NI)0;
2729 		T3_ = len__ast_4002((*(*c).fn).typ);
2730 		if (!(T3_ == ((NI) 4))) goto LA4_;
2731 		result = lastSon__ast_4832((*(*(*c).fn).typ).n);
2732 	}
2733 	goto LA1_;
2734 	LA4_: ;
2735 	{
2736 		result = boolLit__liftdestructors_427((*c).g, (*c).info, NIM_TRUE);
2737 	}
2738 	LA1_: ;
2739 	return result;
2740 }
N_NIMCALL(void,atomicRefOp__liftdestructors_1376)2741 N_LIB_PRIVATE N_NIMCALL(void, atomicRefOp__liftdestructors_1376)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
2742 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* actions;
2743 	tyObject_TType__facALICuu8zUj0hjvbTLFg* elemType;
2744 	NIM_BOOL isCyclic;
2745 	NIM_BOOL T1_;
2746 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
2747 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond;
2748 	actions = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*c).info);
2749 	elemType = lastSon__ast_3743(t);
2750 	createTypeBoundOps__liftdestructors_47((*c).g, (*c).c, elemType, (*c).info, (*c).idgen);
2751 	T1_ = (NIM_BOOL)0;
2752 	T1_ = ((*(*(*c).g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 5));
2753 	if (!(T1_)) goto LA2_;
2754 	T1_ = canFormAcycle__types_762(elemType);
2755 	LA2_: ;
2756 	isCyclic = T1_;
2757 	{
2758 		NIM_BOOL T5_;
2759 		T5_ = (NIM_BOOL)0;
2760 		T5_ = isCyclic;
2761 		if (!(T5_)) goto LA6_;
2762 		T5_ = ((6 &((NU8)1<<((NU)((*c).kind)&7U)))!=0);
2763 		LA6_: ;
2764 		if (!T5_) goto LA7_;
2765 		tmp = declareTempOf__liftdestructors_767(c, body, x);
2766 	}
2767 	goto LA3_;
2768 	LA7_: ;
2769 	{
2770 		tmp = x;
2771 	}
2772 	LA3_: ;
2773 	{
2774 		NIM_BOOL T12_;
2775 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
2776 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* alignOf_1;
2777 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
2778 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
2779 		T12_ = (NIM_BOOL)0;
2780 		T12_ = isFinal__types_750(elemType);
2781 		if (!T12_) goto LA13_;
2782 		T15_ = NIM_NIL;
2783 		T15_ = genDeref__lowerings_626(tmp, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47));
2784 		addDestructorCall__liftdestructors_661(c, elemType, actions, T15_);
2785 		T16_ = NIM_NIL;
2786 		T16_ = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*c).info, elemType);
2787 		alignOf_1 = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 11), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_23), T16_);
2788 		asgnRef((void**) (&(*alignOf_1).typ), getSysType__magicsys_60((*c).g, (*c).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31)));
2789 		T17_ = NIM_NIL;
2790 		T17_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_24), (*c).info, tmp, alignOf_1, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
2791 		add__ast_4797(actions, T17_);
2792 	}
2793 	goto LA10_;
2794 	LA13_: ;
2795 	{
2796 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
2797 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
2798 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
2799 		T19_ = NIM_NIL;
2800 		T19_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*c).info);
2801 		T20_ = NIM_NIL;
2802 		T20_ = genDeref__lowerings_626(tmp, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47));
2803 		addDestructorCall__liftdestructors_661(c, elemType, T19_, T20_);
2804 		T21_ = NIM_NIL;
2805 		T21_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_25), (*c).info, tmp, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
2806 		add__ast_4797(actions, T21_);
2807 	}
2808 	LA10_: ;
2809 	cond = NIM_NIL;
2810 	{
2811 		if (!isCyclic) goto LA24_;
2812 		{
2813 			NIM_BOOL T28_;
2814 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typInfo;
2815 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
2816 			T28_ = (NIM_BOOL)0;
2817 			T28_ = isFinal__types_750(elemType);
2818 			if (!T28_) goto LA29_;
2819 			T31_ = NIM_NIL;
2820 			T31_ = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*x).info, elemType);
2821 			typInfo = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 262), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_26), T31_);
2822 			asgnRef((void**) (&(*typInfo).typ), getSysType__magicsys_60((*c).g, (*c).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26)));
2823 			cond = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_27), (*c).info, tmp, typInfo, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
2824 		}
2825 		goto LA26_;
2826 		LA29_: ;
2827 		{
2828 			cond = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_28), (*c).info, tmp, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
2829 		}
2830 		LA26_: ;
2831 	}
2832 	goto LA22_;
2833 	LA24_: ;
2834 	{
2835 		cond = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_29), (*c).info, x, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
2836 	}
2837 	LA22_: ;
2838 	asgnRef((void**) (&(*cond).typ), getSysType__magicsys_60((*c).g, (*x).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
2839 	switch ((*c).kind) {
2840 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2):
2841 	{
2842 		{
2843 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T39_;
2844 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T40_;
2845 			if (!isCyclic) goto LA37_;
2846 			T39_ = NIM_NIL;
2847 			T39_ = newAsgnStmt__liftdestructors_107(x, y);
2848 			add__ast_4797(body, T39_);
2849 			T40_ = NIM_NIL;
2850 			T40_ = genIf__liftdestructors_183(c, cond, actions);
2851 			add__ast_4797(body, T40_);
2852 		}
2853 		goto LA35_;
2854 		LA37_: ;
2855 		{
2856 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T42_;
2857 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
2858 			T42_ = NIM_NIL;
2859 			T42_ = genIf__liftdestructors_183(c, cond, actions);
2860 			add__ast_4797(body, T42_);
2861 			T43_ = NIM_NIL;
2862 			T43_ = newAsgnStmt__liftdestructors_107(x, y);
2863 			add__ast_4797(body, T43_);
2864 		}
2865 		LA35_: ;
2866 	}
2867 	break;
2868 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1):
2869 	{
2870 		{
2871 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T49_;
2872 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T50_;
2873 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T51_;
2874 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T52_;
2875 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T53_;
2876 			if (!isCyclic) goto LA47_;
2877 			T49_ = NIM_NIL;
2878 			T49_ = getCycleParam__liftdestructors_435((&(*c)));
2879 			T50_ = NIM_NIL;
2880 			T50_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_30), (*c).info, y, T49_, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
2881 			T51_ = NIM_NIL;
2882 			T51_ = genIf__liftdestructors_183(c, y, T50_);
2883 			add__ast_4797(body, T51_);
2884 			T52_ = NIM_NIL;
2885 			T52_ = newAsgnStmt__liftdestructors_107(x, y);
2886 			add__ast_4797(body, T52_);
2887 			T53_ = NIM_NIL;
2888 			T53_ = genIf__liftdestructors_183(c, cond, actions);
2889 			add__ast_4797(body, T53_);
2890 		}
2891 		goto LA45_;
2892 		LA47_: ;
2893 		{
2894 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T55_;
2895 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T56_;
2896 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T57_;
2897 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T58_;
2898 			T55_ = NIM_NIL;
2899 			T55_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_31), (*c).info, y, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
2900 			T56_ = NIM_NIL;
2901 			T56_ = genIf__liftdestructors_183(c, y, T55_);
2902 			add__ast_4797(body, T56_);
2903 			T57_ = NIM_NIL;
2904 			T57_ = genIf__liftdestructors_183(c, cond, actions);
2905 			add__ast_4797(body, T57_);
2906 			T58_ = NIM_NIL;
2907 			T58_ = newAsgnStmt__liftdestructors_107(x, y);
2908 			add__ast_4797(body, T58_);
2909 		}
2910 		LA45_: ;
2911 	}
2912 	break;
2913 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0):
2914 	{
2915 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T60_;
2916 		T60_ = NIM_NIL;
2917 		T60_ = genIf__liftdestructors_183(c, cond, actions);
2918 		add__ast_4797(body, T60_);
2919 	}
2920 	break;
2921 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4):
2922 	{
2923 	}
2924 	break;
2925 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3):
2926 	{
2927 		{
2928 			if (!isCyclic) goto LA65_;
2929 			{
2930 				NIM_BOOL T69_;
2931 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* typInfo_2;
2932 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T72_;
2933 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T73_;
2934 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T74_;
2935 				T69_ = (NIM_BOOL)0;
2936 				T69_ = isFinal__types_750(elemType);
2937 				if (!T69_) goto LA70_;
2938 				T72_ = NIM_NIL;
2939 				T72_ = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*x).info, elemType);
2940 				typInfo_2 = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 262), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_26), T72_);
2941 				asgnRef((void**) (&(*typInfo_2).typ), getSysType__magicsys_60((*c).g, (*c).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26)));
2942 				T73_ = NIM_NIL;
2943 				T73_ = genAddrOf__lowerings_620(x, (*c).idgen, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21));
2944 				T74_ = NIM_NIL;
2945 				T74_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_32), (*c).info, T73_, typInfo_2, y, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
2946 				add__ast_4797(body, T74_);
2947 			}
2948 			goto LA67_;
2949 			LA70_: ;
2950 			{
2951 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T76_;
2952 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T77_;
2953 				T76_ = NIM_NIL;
2954 				T76_ = genAddrOf__lowerings_620(x, (*c).idgen, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21));
2955 				T77_ = NIM_NIL;
2956 				T77_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_33), (*c).info, T76_, y, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
2957 				add__ast_4797(body, T77_);
2958 			}
2959 			LA67_: ;
2960 		}
2961 		LA65_: ;
2962 	}
2963 	break;
2964 	}
2965 }
N_NIMCALL(void,insert__liftdestructors_1579)2966 N_LIB_PRIVATE N_NIMCALL(void, insert__liftdestructors_1579)(tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ** x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* item, NI i) {
2967 	NI xlX60gensym143_;
2968 	NI T1_;
2969 	NI jX60gensym143_;
2970 	T1_ = ((*x) ? (*x)->Sup.len : 0);
2971 	xlX60gensym143_ = T1_;
2972 	unsureAsgnRef((void**) (&(*x)), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*x))->Sup, (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) ((NI)(xlX60gensym143_ + ((NI) 1))))));
2973 	jX60gensym143_ = (NI)(xlX60gensym143_ - ((NI) 1));
2974 	{
2975 		while (1) {
2976 			if (!(((NI) (i)) <= jX60gensym143_)) goto LA3;
2977 			asgnRef((void**) (&(*x)->data[(NI)(jX60gensym143_ + ((NI) 1))]), (*x)->data[jX60gensym143_]);
2978 			jX60gensym143_ -= ((NI) 1);
2979 		} LA3: ;
2980 	}
2981 	asgnRef((void**) (&(*x)->data[i]), item);
2982 }
N_NIMCALL(void,weakrefOp__liftdestructors_1540)2983 N_LIB_PRIVATE N_NIMCALL(void, weakrefOp__liftdestructors_1540)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
2984 	switch ((*c).kind) {
2985 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2):
2986 	{
2987 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
2988 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
2989 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
2990 		T2_ = NIM_NIL;
2991 		T2_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_34), (*c).info, x, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
2992 		T3_ = NIM_NIL;
2993 		T3_ = genIf__liftdestructors_183(c, x, T2_);
2994 		add__ast_4797(body, T3_);
2995 		T4_ = NIM_NIL;
2996 		T4_ = newAsgnStmt__liftdestructors_107(x, y);
2997 		add__ast_4797(body, T4_);
2998 	}
2999 	break;
3000 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1):
3001 	{
3002 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
3003 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
3004 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
3005 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
3006 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
3007 		T6_ = NIM_NIL;
3008 		T6_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_31), (*c).info, y, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3009 		T7_ = NIM_NIL;
3010 		T7_ = genIf__liftdestructors_183(c, y, T6_);
3011 		add__ast_4797(body, T7_);
3012 		T8_ = NIM_NIL;
3013 		T8_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_34), (*c).info, x, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3014 		T9_ = NIM_NIL;
3015 		T9_ = genIf__liftdestructors_183(c, x, T8_);
3016 		add__ast_4797(body, T9_);
3017 		T10_ = NIM_NIL;
3018 		T10_ = newAsgnStmt__liftdestructors_107(x, y);
3019 		add__ast_4797(body, T10_);
3020 	}
3021 	break;
3022 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0):
3023 	{
3024 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* actions;
3025 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
3026 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* des;
3027 		actions = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*c).info);
3028 		T12_ = NIM_NIL;
3029 		T12_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_34), (*c).info, x, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3030 		add__ast_4797(actions, T12_);
3031 		des = genIf__liftdestructors_183(c, x, actions);
3032 		{
3033 			NI T15_;
3034 			T15_ = (NI)0;
3035 			T15_ = len__ast_3198(body);
3036 			if (!(T15_ == ((NI) 0))) goto LA16_;
3037 			add__ast_4797(body, des);
3038 		}
3039 		goto LA13_;
3040 		LA16_: ;
3041 		{
3042 			insert__liftdestructors_1579((&(*body)._kind_6.sons), des, ((NI) 0));
3043 		}
3044 		LA13_: ;
3045 	}
3046 	break;
3047 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4):
3048 	{
3049 	}
3050 	break;
3051 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3):
3052 	{
3053 	}
3054 	break;
3055 	}
3056 }
N_NIMCALL(void,atomicClosureOp__liftdestructors_1464)3057 N_LIB_PRIVATE N_NIMCALL(void, atomicClosureOp__liftdestructors_1464)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
3058 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* xenv;
3059 	NIM_BOOL isCyclic;
3060 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* tmp;
3061 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* actions;
3062 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
3063 	NimStringDesc* decRefProc;
3064 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond;
3065 	xenv = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 156), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_35), x);
3066 	asgnRef((void**) (&(*xenv).typ), getSysType__magicsys_60((*c).g, (*c).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26)));
3067 	isCyclic = ((*(*(*c).g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 5));
3068 	{
3069 		NIM_BOOL T3_;
3070 		T3_ = (NIM_BOOL)0;
3071 		T3_ = isCyclic;
3072 		if (!(T3_)) goto LA4_;
3073 		T3_ = ((6 &((NU8)1<<((NU)((*c).kind)&7U)))!=0);
3074 		LA4_: ;
3075 		if (!T3_) goto LA5_;
3076 		tmp = declareTempOf__liftdestructors_767(c, body, xenv);
3077 	}
3078 	goto LA1_;
3079 	LA5_: ;
3080 	{
3081 		tmp = xenv;
3082 	}
3083 	LA1_: ;
3084 	actions = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*c).info);
3085 	T8_ = NIM_NIL;
3086 	T8_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_25), (*c).info, tmp, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3087 	add__ast_4797(actions, T8_);
3088 	{
3089 		if (!isCyclic) goto LA11_;
3090 		decRefProc = copyString(((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_28));
3091 	}
3092 	goto LA9_;
3093 	LA11_: ;
3094 	{
3095 		decRefProc = copyString(((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_29));
3096 	}
3097 	LA9_: ;
3098 	cond = callCodegenProc__lowerings_635((*c).g, decRefProc, (*c).info, tmp, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3099 	asgnRef((void**) (&(*cond).typ), getSysType__magicsys_60((*c).g, (*x).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
3100 	switch ((*c).kind) {
3101 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2):
3102 	{
3103 		{
3104 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
3105 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
3106 			if (!isCyclic) goto LA17_;
3107 			T19_ = NIM_NIL;
3108 			T19_ = newAsgnStmt__liftdestructors_107(x, y);
3109 			add__ast_4797(body, T19_);
3110 			T20_ = NIM_NIL;
3111 			T20_ = genIf__liftdestructors_183(c, cond, actions);
3112 			add__ast_4797(body, T20_);
3113 		}
3114 		goto LA15_;
3115 		LA17_: ;
3116 		{
3117 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
3118 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
3119 			T22_ = NIM_NIL;
3120 			T22_ = genIf__liftdestructors_183(c, cond, actions);
3121 			add__ast_4797(body, T22_);
3122 			T23_ = NIM_NIL;
3123 			T23_ = newAsgnStmt__liftdestructors_107(x, y);
3124 			add__ast_4797(body, T23_);
3125 		}
3126 		LA15_: ;
3127 	}
3128 	break;
3129 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1):
3130 	{
3131 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* yenv;
3132 		yenv = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 156), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_35), y);
3133 		asgnRef((void**) (&(*yenv).typ), getSysType__magicsys_60((*c).g, (*c).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26)));
3134 		{
3135 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
3136 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T30_;
3137 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T31_;
3138 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T32_;
3139 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
3140 			if (!isCyclic) goto LA27_;
3141 			T29_ = NIM_NIL;
3142 			T29_ = getCycleParam__liftdestructors_435((&(*c)));
3143 			T30_ = NIM_NIL;
3144 			T30_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_30), (*c).info, yenv, T29_, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3145 			T31_ = NIM_NIL;
3146 			T31_ = genIf__liftdestructors_183(c, yenv, T30_);
3147 			add__ast_4797(body, T31_);
3148 			T32_ = NIM_NIL;
3149 			T32_ = newAsgnStmt__liftdestructors_107(x, y);
3150 			add__ast_4797(body, T32_);
3151 			T33_ = NIM_NIL;
3152 			T33_ = genIf__liftdestructors_183(c, cond, actions);
3153 			add__ast_4797(body, T33_);
3154 		}
3155 		goto LA25_;
3156 		LA27_: ;
3157 		{
3158 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
3159 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T36_;
3160 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T37_;
3161 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T38_;
3162 			T35_ = NIM_NIL;
3163 			T35_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_31), (*c).info, yenv, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3164 			T36_ = NIM_NIL;
3165 			T36_ = genIf__liftdestructors_183(c, yenv, T35_);
3166 			add__ast_4797(body, T36_);
3167 			T37_ = NIM_NIL;
3168 			T37_ = genIf__liftdestructors_183(c, cond, actions);
3169 			add__ast_4797(body, T37_);
3170 			T38_ = NIM_NIL;
3171 			T38_ = newAsgnStmt__liftdestructors_107(x, y);
3172 			add__ast_4797(body, T38_);
3173 		}
3174 		LA25_: ;
3175 	}
3176 	break;
3177 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0):
3178 	{
3179 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T40_;
3180 		T40_ = NIM_NIL;
3181 		T40_ = genIf__liftdestructors_183(c, cond, actions);
3182 		add__ast_4797(body, T40_);
3183 	}
3184 	break;
3185 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4):
3186 	{
3187 	}
3188 	break;
3189 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3):
3190 	{
3191 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
3192 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T44_;
3193 		T43_ = NIM_NIL;
3194 		T43_ = genAddrOf__lowerings_620(xenv, (*c).idgen, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21));
3195 		T44_ = NIM_NIL;
3196 		T44_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_33), (*c).info, T43_, y, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3197 		add__ast_4797(body, T44_);
3198 	}
3199 	break;
3200 	}
3201 }
N_NIMCALL(void,closureOp__liftdestructors_1655)3202 N_LIB_PRIVATE N_NIMCALL(void, closureOp__liftdestructors_1655)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
3203 	{
3204 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* call;
3205 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T5_;
3206 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
3207 		if (!((*c).kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4))) goto LA3_;
3208 		call = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*c).info, ((NI) 2));
3209 		asgnRef((void**) (&(*call).typ), t);
3210 		T5_ = NIM_NIL;
3211 		T5_ = createMagic__modulegraphs_9008((*c).g, (*c).idgen, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_36), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 199));
3212 		asgnRef((void**) (&(*call)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(T5_));
3213 		asgnRef((void**) (&(*call)._kind_6.sons->data[((NI) 1)]), y);
3214 		T6_ = NIM_NIL;
3215 		T6_ = newAsgnStmt__liftdestructors_107(x, call);
3216 		add__ast_4797(body, T6_);
3217 	}
3218 	goto LA1_;
3219 	LA3_: ;
3220 	{
3221 		NIM_BOOL T8_;
3222 		NIM_BOOL T9_;
3223 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* xx;
3224 		T8_ = (NIM_BOOL)0;
3225 		T9_ = (NIM_BOOL)0;
3226 		T9_ = (((*(*(*c).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0);
3227 		if (!(T9_)) goto LA10_;
3228 		T9_ = (((*(*(*c).g).config).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 6))&31U)))!=0);
3229 		LA10_: ;
3230 		T8_ = T9_;
3231 		if (T8_) goto LA11_;
3232 		T8_ = ((48 &((NU16)1<<((NU)((*(*(*c).g).config).selectedGC)&15U)))!=0);
3233 		LA11_: ;
3234 		if (!T8_) goto LA12_;
3235 		xx = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 156), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_35), x);
3236 		asgnRef((void**) (&(*xx).typ), getSysType__magicsys_60((*c).g, (*c).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26)));
3237 		switch ((*c).kind) {
3238 		case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2):
3239 		{
3240 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
3241 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T16_;
3242 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
3243 			T15_ = NIM_NIL;
3244 			T15_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_34), (*c).info, xx, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3245 			T16_ = NIM_NIL;
3246 			T16_ = genIf__liftdestructors_183(c, xx, T15_);
3247 			add__ast_4797(body, T16_);
3248 			T17_ = NIM_NIL;
3249 			T17_ = newAsgnStmt__liftdestructors_107(x, y);
3250 			add__ast_4797(body, T17_);
3251 		}
3252 		break;
3253 		case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1):
3254 		{
3255 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* yy;
3256 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
3257 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
3258 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T21_;
3259 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
3260 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
3261 			yy = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 156), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_35), y);
3262 			asgnRef((void**) (&(*yy).typ), getSysType__magicsys_60((*c).g, (*c).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26)));
3263 			T19_ = NIM_NIL;
3264 			T19_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_31), (*c).info, yy, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3265 			T20_ = NIM_NIL;
3266 			T20_ = genIf__liftdestructors_183(c, yy, T19_);
3267 			add__ast_4797(body, T20_);
3268 			T21_ = NIM_NIL;
3269 			T21_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_34), (*c).info, xx, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3270 			T22_ = NIM_NIL;
3271 			T22_ = genIf__liftdestructors_183(c, xx, T21_);
3272 			add__ast_4797(body, T22_);
3273 			T23_ = NIM_NIL;
3274 			T23_ = newAsgnStmt__liftdestructors_107(x, y);
3275 			add__ast_4797(body, T23_);
3276 		}
3277 		break;
3278 		case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0):
3279 		{
3280 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* des;
3281 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
3282 			T25_ = NIM_NIL;
3283 			T25_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_34), (*c).info, xx, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3284 			des = genIf__liftdestructors_183(c, xx, T25_);
3285 			{
3286 				NI T28_;
3287 				T28_ = (NI)0;
3288 				T28_ = len__ast_3198(body);
3289 				if (!(T28_ == ((NI) 0))) goto LA29_;
3290 				add__ast_4797(body, des);
3291 			}
3292 			goto LA26_;
3293 			LA29_: ;
3294 			{
3295 				insert__liftdestructors_1579((&(*body)._kind_6.sons), des, ((NI) 0));
3296 			}
3297 			LA26_: ;
3298 		}
3299 		break;
3300 		case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4):
3301 		{
3302 		}
3303 		break;
3304 		case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3):
3305 		{
3306 		}
3307 		break;
3308 		}
3309 	}
3310 	goto LA1_;
3311 	LA12_: ;
3312 	LA1_: ;
3313 }
N_NIMCALL(void,ownedRefOp__liftdestructors_1620)3314 N_LIB_PRIVATE N_NIMCALL(void, ownedRefOp__liftdestructors_1620)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
3315 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* actions;
3316 	tyObject_TType__facALICuu8zUj0hjvbTLFg* elemType;
3317 	actions = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*c).info);
3318 	elemType = lastSon__ast_3743(t);
3319 	{
3320 		NIM_BOOL T3_;
3321 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
3322 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* alignOf_1;
3323 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
3324 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
3325 		T3_ = (NIM_BOOL)0;
3326 		T3_ = isFinal__types_750(elemType);
3327 		if (!T3_) goto LA4_;
3328 		T6_ = NIM_NIL;
3329 		T6_ = genDeref__lowerings_626(x, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47));
3330 		addDestructorCall__liftdestructors_661(c, elemType, actions, T6_);
3331 		T7_ = NIM_NIL;
3332 		T7_ = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*c).info, elemType);
3333 		alignOf_1 = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 11), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_23), T7_);
3334 		asgnRef((void**) (&(*alignOf_1).typ), getSysType__magicsys_60((*c).g, (*c).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31)));
3335 		T8_ = NIM_NIL;
3336 		T8_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_24), (*c).info, x, alignOf_1, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3337 		add__ast_4797(actions, T8_);
3338 	}
3339 	goto LA1_;
3340 	LA4_: ;
3341 	{
3342 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
3343 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
3344 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
3345 		T10_ = NIM_NIL;
3346 		T10_ = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*c).info);
3347 		T11_ = NIM_NIL;
3348 		T11_ = genDeref__lowerings_626(x, ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 47));
3349 		addDestructorCall__liftdestructors_661(c, elemType, T10_, T11_);
3350 		T12_ = NIM_NIL;
3351 		T12_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_25), (*c).info, x, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3352 		add__ast_4797(actions, T12_);
3353 	}
3354 	LA1_: ;
3355 	switch ((*c).kind) {
3356 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2):
3357 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1):
3358 	{
3359 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T14_;
3360 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T15_;
3361 		T14_ = NIM_NIL;
3362 		T14_ = genIf__liftdestructors_183(c, x, actions);
3363 		add__ast_4797(body, T14_);
3364 		T15_ = NIM_NIL;
3365 		T15_ = newAsgnStmt__liftdestructors_107(x, y);
3366 		add__ast_4797(body, T15_);
3367 	}
3368 	break;
3369 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0):
3370 	{
3371 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T17_;
3372 		T17_ = NIM_NIL;
3373 		T17_ = genIf__liftdestructors_183(c, x, actions);
3374 		add__ast_4797(body, T17_);
3375 	}
3376 	break;
3377 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4):
3378 	{
3379 	}
3380 	break;
3381 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3):
3382 	{
3383 	}
3384 	break;
3385 	}
3386 }
N_NIMCALL(void,ownedClosureOp__liftdestructors_1722)3387 N_LIB_PRIVATE N_NIMCALL(void, ownedClosureOp__liftdestructors_1722)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
3388 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* xx;
3389 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* actions;
3390 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
3391 	xx = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 156), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_35), x);
3392 	asgnRef((void**) (&(*xx).typ), getSysType__magicsys_60((*c).g, (*c).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26)));
3393 	actions = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*c).info);
3394 	T1_ = NIM_NIL;
3395 	T1_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_25), (*c).info, xx, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
3396 	add__ast_4797(actions, T1_);
3397 	switch ((*c).kind) {
3398 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2):
3399 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1):
3400 	{
3401 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
3402 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
3403 		T3_ = NIM_NIL;
3404 		T3_ = genIf__liftdestructors_183(c, xx, actions);
3405 		add__ast_4797(body, T3_);
3406 		T4_ = NIM_NIL;
3407 		T4_ = newAsgnStmt__liftdestructors_107(x, y);
3408 		add__ast_4797(body, T4_);
3409 	}
3410 	break;
3411 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0):
3412 	{
3413 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
3414 		T6_ = NIM_NIL;
3415 		T6_ = genIf__liftdestructors_183(c, xx, actions);
3416 		add__ast_4797(body, T6_);
3417 	}
3418 	break;
3419 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4):
3420 	{
3421 	}
3422 	break;
3423 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3):
3424 	{
3425 	}
3426 	break;
3427 	}
3428 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newHookCall__liftdestructors_461)3429 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newHookCall__liftdestructors_461)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
3430 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
3431 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
3432 	result = NIM_NIL;
3433 	result = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*x).info);
3434 	T1_ = NIM_NIL;
3435 	T1_ = newSymNode__ast_3716(op);
3436 	add__ast_4797(result, T1_);
3437 	{
3438 		if (!!((((*op).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 43))&63U)))!=0))) goto LA4_;
3439 		(*c).canRaise = NIM_TRUE;
3440 	}
3441 	LA4_: ;
3442 	{
3443 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
3444 		if (!((*(*(*op).typ).sons->data[((NI) 1)]).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA8_;
3445 		T10_ = NIM_NIL;
3446 		T10_ = genAddr__liftdestructors_158(c, x);
3447 		add__ast_4797(result, T10_);
3448 	}
3449 	goto LA6_;
3450 	LA8_: ;
3451 	{
3452 		add__ast_4797(result, x);
3453 	}
3454 	LA6_: ;
3455 	{
3456 		if (!!((y == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA14_;
3457 		add__ast_4797(result, y);
3458 	}
3459 	LA14_: ;
3460 	{
3461 		NI T18_;
3462 		T18_ = (NI)0;
3463 		T18_ = len__ast_4002((*op).typ);
3464 		if (!(T18_ == ((NI) 4))) goto LA19_;
3465 		{
3466 			NI T23_;
3467 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T26_;
3468 			T23_ = (NI)0;
3469 			T23_ = len__ast_4002((*(*c).fn).typ);
3470 			if (!(T23_ == ((NI) 4))) goto LA24_;
3471 			T26_ = NIM_NIL;
3472 			T26_ = getCycleParam__liftdestructors_435((&(*c)));
3473 			add__ast_4797(result, T26_);
3474 		}
3475 		goto LA21_;
3476 		LA24_: ;
3477 		{
3478 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
3479 			T28_ = NIM_NIL;
3480 			T28_ = boolLit__liftdestructors_427((*c).g, (*y).info, NIM_TRUE);
3481 			add__ast_4797(result, T28_);
3482 		}
3483 		LA21_: ;
3484 	}
3485 	LA19_: ;
3486 	return result;
3487 }
N_NIMCALL(void,useSeqOrStrOp__liftdestructors_894)3488 N_LIB_PRIVATE N_NIMCALL(void, useSeqOrStrOp__liftdestructors_894)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
3489 	tyObject_TType__facALICuu8zUj0hjvbTLFg* t_2;
3490 {	createTypeBoundOps__liftdestructors_47((*c).g, (*c).c, t, (*body).info, (*c).idgen);
3491 	t_2 = t;
3492 	{
3493 		NIM_BOOL T3_;
3494 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T4_;
3495 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T6_;
3496 		tyArray__qtqsWM5aXmcpMIVmvq3kAA h;
3497 		tyObject_TType__facALICuu8zUj0hjvbTLFg* canon;
3498 		T3_ = (NIM_BOOL)0;
3499 		T4_ = NIM_NIL;
3500 		T4_ = getAttachedOp__modulegraphs_4011((*c).g, t_2, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1));
3501 		T3_ = (T4_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
3502 		if (T3_) goto LA5_;
3503 		T6_ = NIM_NIL;
3504 		T6_ = getAttachedOp__modulegraphs_4011((*c).g, t_2, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
3505 		T3_ = (T6_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
3506 		LA5_: ;
3507 		if (!T3_) goto LA7_;
3508 		nimZeroMem((void*)h, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
3509 		hashType__sighashes_462(t_2, 50, h);
3510 		canon = getOrDefault__liftdestructors_976((*(*c).g).canonTypes, h);
3511 		{
3512 			if (!!((canon == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA11_;
3513 			t_2 = canon;
3514 		}
3515 		LA11_: ;
3516 	}
3517 	LA7_: ;
3518 	switch ((*c).kind) {
3519 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1):
3520 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4):
3521 	{
3522 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T19_;
3523 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T20_;
3524 		{
3525 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T16_;
3526 			T16_ = NIM_NIL;
3527 			T16_ = getAttachedOp__modulegraphs_4011((*c).g, t_2, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1));
3528 			if (!(T16_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA17_;
3529 			goto BeforeRet_;
3530 		}
3531 		LA17_: ;
3532 		T19_ = NIM_NIL;
3533 		T19_ = getAttachedOp__modulegraphs_4011((*c).g, t_2, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1));
3534 		T20_ = NIM_NIL;
3535 		T20_ = newHookCall__liftdestructors_461(c, T19_, x, y);
3536 		add__ast_4797(body, T20_);
3537 	}
3538 	break;
3539 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2):
3540 	{
3541 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* moveCall;
3542 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T27_;
3543 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
3544 		moveCall = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 148), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_38), x);
3545 		add__ast_4797(moveCall, y);
3546 		{
3547 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T24_;
3548 			T24_ = NIM_NIL;
3549 			T24_ = getAttachedOp__modulegraphs_4011((*c).g, t_2, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
3550 			if (!!(!((T24_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))))) goto LA25_;
3551 			failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_39));
3552 		}
3553 		LA25_: ;
3554 		T27_ = NIM_NIL;
3555 		T27_ = getAttachedOp__modulegraphs_4011((*c).g, t_2, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
3556 		T28_ = NIM_NIL;
3557 		T28_ = destructorCall__liftdestructors_233(c, T27_, x);
3558 		add__ast_4797(moveCall, T28_);
3559 		add__ast_4797(body, moveCall);
3560 	}
3561 	break;
3562 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0):
3563 	{
3564 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T35_;
3565 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T36_;
3566 		{
3567 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T32_;
3568 			T32_ = NIM_NIL;
3569 			T32_ = getAttachedOp__modulegraphs_4011((*c).g, t_2, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
3570 			if (!!(!((T32_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))))) goto LA33_;
3571 			failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_40));
3572 		}
3573 		LA33_: ;
3574 		T35_ = NIM_NIL;
3575 		T35_ = getAttachedOp__modulegraphs_4011((*c).g, t_2, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
3576 		T36_ = NIM_NIL;
3577 		T36_ = destructorCall__liftdestructors_233(c, T35_, x);
3578 		add__ast_4797(body, T36_);
3579 	}
3580 	break;
3581 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3):
3582 	{
3583 		{
3584 			NIM_BOOL T40_;
3585 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T42_;
3586 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op;
3587 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T49_;
3588 			T40_ = (NIM_BOOL)0;
3589 			T40_ = !(((*t_2).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28)));
3590 			if (!(T40_)) goto LA41_;
3591 			T42_ = NIM_NIL;
3592 			T42_ = elemType__types_263(t_2);
3593 			T40_ = canFormAcycle__types_762(T42_);
3594 			LA41_: ;
3595 			if (!T40_) goto LA43_;
3596 			op = getAttachedOp__modulegraphs_4011((*c).g, t_2, (*c).kind);
3597 			{
3598 				if (!(op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA47_;
3599 				goto BeforeRet_;
3600 			}
3601 			LA47_: ;
3602 			T49_ = NIM_NIL;
3603 			T49_ = newHookCall__liftdestructors_461(c, op, x, y);
3604 			add__ast_4797(body, T49_);
3605 		}
3606 		LA43_: ;
3607 	}
3608 	break;
3609 	}
3610 	}BeforeRet_: ;
3611 }
N_NIMCALL(NIM_BOOL,considerAsgnOrSink__liftdestructors_586)3612 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, considerAsgnOrSink__liftdestructors_586)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ** field) {
3613 	NIM_BOOL result;
3614 {	result = (NIM_BOOL)0;
3615 	{
3616 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op;
3617 		NIM_BOOL destructorOverriden;
3618 		if (!(((*(*(*c).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA3_;
3619 		op = (*field);
3620 		destructorOverriden = destructorOverriden__liftdestructors_60((*c).g, t);
3621 		{
3622 			NIM_BOOL T7_;
3623 			NIM_BOOL T8_;
3624 			NIM_BOOL T11_;
3625 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T19_;
3626 			T7_ = (NIM_BOOL)0;
3627 			T8_ = (NIM_BOOL)0;
3628 			T8_ = !((op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
3629 			if (!(T8_)) goto LA9_;
3630 			T8_ = !((op == (*c).fn));
3631 			LA9_: ;
3632 			T7_ = T8_;
3633 			if (!(T7_)) goto LA10_;
3634 			T11_ = (NIM_BOOL)0;
3635 			T11_ = (((*op).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35))&63U)))!=0);
3636 			if (T11_) goto LA12_;
3637 			T11_ = destructorOverriden;
3638 			LA12_: ;
3639 			T7_ = T11_;
3640 			LA10_: ;
3641 			if (!T7_) goto LA13_;
3642 			{
3643 				if (!(((*op).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA17_;
3644 				(*(*c).fn).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24)) & 63);
3645 			}
3646 			LA17_: ;
3647 			T19_ = NIM_NIL;
3648 			T19_ = newHookCall__liftdestructors_461(c, op, x, y);
3649 			add__ast_4797(body, T19_);
3650 			result = NIM_TRUE;
3651 		}
3652 		goto LA5_;
3653 		LA13_: ;
3654 		{
3655 			NIM_BOOL T21_;
3656 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T25_;
3657 			T21_ = (NIM_BOOL)0;
3658 			T21_ = (op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
3659 			if (!(T21_)) goto LA22_;
3660 			T21_ = destructorOverriden;
3661 			LA22_: ;
3662 			if (!T21_) goto LA23_;
3663 			op = produceSym__liftdestructors_40((*c).g, (*c).c, t, (*c).kind, (*c).info, (*c).idgen);
3664 			T25_ = NIM_NIL;
3665 			T25_ = newHookCall__liftdestructors_461(c, op, x, y);
3666 			add__ast_4797(body, T25_);
3667 			result = NIM_TRUE;
3668 		}
3669 		goto LA5_;
3670 		LA23_: ;
3671 		LA5_: ;
3672 	}
3673 	goto LA1_;
3674 	LA3_: ;
3675 	{
3676 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op_2;
3677 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T53_;
3678 		if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31))&63U)))!=0)) goto LA27_;
3679 		op_2 = NIM_NIL;
3680 		{
3681 			NIM_BOOL T31_;
3682 			T31_ = (NIM_BOOL)0;
3683 			T31_ = sameType__types_1815(t, (*c).asgnForType, 0);
3684 			if (!T31_) goto LA32_;
3685 			{
3686 				if (!(*c).recurse) goto LA36_;
3687 				op_2 = (*c).fn;
3688 			}
3689 			goto LA34_;
3690 			LA36_: ;
3691 			{
3692 				(*c).recurse = NIM_TRUE;
3693 				result = NIM_FALSE;
3694 				goto BeforeRet_;
3695 			}
3696 			LA34_: ;
3697 		}
3698 		goto LA29_;
3699 		LA32_: ;
3700 		{
3701 			op_2 = (*field);
3702 			{
3703 				if (!(op_2 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA42_;
3704 				op_2 = produceSym__liftdestructors_40((*c).g, (*c).c, t, (*c).kind, (*c).info, (*c).idgen);
3705 			}
3706 			LA42_: ;
3707 		}
3708 		LA29_: ;
3709 		{
3710 			if (!(((*op_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24))&63U)))!=0)) goto LA46_;
3711 			(*(*c).fn).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 24)) & 63);
3712 		}
3713 		LA46_: ;
3714 		{
3715 			NIM_BOOL T50_;
3716 			T50_ = (NIM_BOOL)0;
3717 			T50_ = isGenericRoutine__ast_4627((*op_2).ast);
3718 			if (!T50_) goto LA51_;
3719 			op_2 = instantiateGeneric__liftdestructors_570(c, op_2, t, (*t).typeInst);
3720 			unsureAsgnRef((void**) (&(*field)), op_2);
3721 		}
3722 		LA51_: ;
3723 		T53_ = NIM_NIL;
3724 		T53_ = newHookCall__liftdestructors_461(c, op_2, x, y);
3725 		add__ast_4797(body, T53_);
3726 		result = NIM_TRUE;
3727 	}
3728 	goto LA1_;
3729 	LA27_: ;
3730 	LA1_: ;
3731 	}BeforeRet_: ;
3732 	return result;
3733 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newDeepCopyCall__liftdestructors_534)3734 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newDeepCopyCall__liftdestructors_534)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
3735 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
3736 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
3737 	result = NIM_NIL;
3738 	T1_ = NIM_NIL;
3739 	T1_ = newOpCall__liftdestructors_516(c, op, y);
3740 	result = newAsgnStmt__liftdestructors_107(x, T1_);
3741 	return result;
3742 }
N_NIMCALL(NIM_BOOL,considerUserDefinedOp__liftdestructors_710)3743 N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, considerUserDefinedOp__liftdestructors_710)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
3744 	NIM_BOOL result;
3745 	result = (NIM_BOOL)0;
3746 	switch ((*c).kind) {
3747 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0):
3748 	{
3749 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op;
3750 		op = getAttachedOp__modulegraphs_4011((*c).g, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
3751 		{
3752 			NIM_BOOL T4_;
3753 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
3754 			T4_ = (NIM_BOOL)0;
3755 			T4_ = !((op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
3756 			if (!(T4_)) goto LA5_;
3757 			T4_ = (((*op).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35))&63U)))!=0);
3758 			LA5_: ;
3759 			if (!T4_) goto LA6_;
3760 			{
3761 				NIM_BOOL T10_;
3762 				T10_ = (NIM_BOOL)0;
3763 				T10_ = isGenericRoutine__ast_4627((*op).ast);
3764 				if (!T10_) goto LA11_;
3765 				op = instantiateGeneric__liftdestructors_570(c, op, t, (*t).typeInst);
3766 				setAttachedOp__modulegraphs_4407((*c).g, ((NI) ((*(*c).idgen).module)), t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0), op);
3767 			}
3768 			LA11_: ;
3769 			T13_ = NIM_NIL;
3770 			T13_ = destructorCall__liftdestructors_233(c, op, x);
3771 			add__ast_4797(body, T13_);
3772 			result = NIM_TRUE;
3773 		}
3774 		LA6_: ;
3775 	}
3776 	break;
3777 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1):
3778 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2):
3779 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3):
3780 	{
3781 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op_2;
3782 		op_2 = getAttachedOp__modulegraphs_4011((*c).g, t, (*c).kind);
3783 		{
3784 			NIM_BOOL T17_;
3785 			T17_ = (NIM_BOOL)0;
3786 			T17_ = !((op_2 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
3787 			if (!(T17_)) goto LA18_;
3788 			T17_ = (((*op_2).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 35))&63U)))!=0);
3789 			LA18_: ;
3790 			if (!T17_) goto LA19_;
3791 			{
3792 				NIM_BOOL T23_;
3793 				T23_ = (NIM_BOOL)0;
3794 				T23_ = isGenericRoutine__ast_4627((*op_2).ast);
3795 				if (!T23_) goto LA24_;
3796 				op_2 = instantiateGeneric__liftdestructors_570(c, op_2, t, (*t).typeInst);
3797 				setAttachedOp__modulegraphs_4407((*c).g, ((NI) ((*(*c).idgen).module)), t, (*c).kind, op_2);
3798 			}
3799 			LA24_: ;
3800 		}
3801 		LA19_: ;
3802 		result = considerAsgnOrSink__liftdestructors_586(c, t, body, x, y, &op_2);
3803 		{
3804 			if (!!((op_2 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA28_;
3805 			setAttachedOp__modulegraphs_4407((*c).g, ((NI) ((*(*c).idgen).module)), t, (*c).kind, op_2);
3806 		}
3807 		LA28_: ;
3808 	}
3809 	break;
3810 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4):
3811 	{
3812 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op_3;
3813 		op_3 = getAttachedOp__modulegraphs_4011((*c).g, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4));
3814 		{
3815 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T35_;
3816 			if (!!((op_3 == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA33_;
3817 			T35_ = NIM_NIL;
3818 			T35_ = newDeepCopyCall__liftdestructors_534(c, op_3, x, y);
3819 			add__ast_4797(body, T35_);
3820 			result = NIM_TRUE;
3821 		}
3822 		LA33_: ;
3823 	}
3824 	break;
3825 	}
3826 	return result;
3827 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,newSeqCall__liftdestructors_795)3828 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, newSeqCall__liftdestructors_795)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
3829 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
3830 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lenCall;
3831 	result = NIM_NIL;
3832 	result = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 34), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_41), x);
3833 	lenCall = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 39), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_9), y);
3834 	asgnRef((void**) (&(*lenCall).typ), getSysType__magicsys_60((*c).g, (*x).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31)));
3835 	add__ast_4797(result, lenCall);
3836 	return result;
3837 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,dotField__liftdestructors_96)3838 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, dotField__liftdestructors_96)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f) {
3839 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
3840 	result = NIM_NIL;
3841 	result = newNodeI__ast_3360(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), (*x).info, ((NI) 2));
3842 	{
3843 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T3_;
3844 		T3_ = NIM_NIL;
3845 		T3_ = skipTypes__ast_3735((*x).typ, TM__qGuGEzVTCUVhav67HrOxdQ_6);
3846 		if (!((*T3_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23))) goto LA4_;
3847 		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), newDeref__lowerings_11(x));
3848 	}
3849 	goto LA1_;
3850 	LA4_: ;
3851 	{
3852 		asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 0)]), x);
3853 	}
3854 	LA1_: ;
3855 	asgnRef((void**) (&(*result)._kind_6.sons->data[((NI) 1)]), newSymNode__ast_3719(f, (*x).info));
3856 	asgnRef((void**) (&(*result).typ), (*f).typ);
3857 	return result;
3858 }
N_INLINE(NI,safeLen__ast_3191)3859 static N_INLINE(NI, safeLen__ast_3191)(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n) {
3860 	NI result;
3861 	result = (NI)0;
3862 	{
3863 		if (!((*n).kind >= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 0) && (*n).kind <= ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23))) goto LA3_;
3864 		result = ((NI) 0);
3865 	}
3866 	goto LA1_;
3867 	LA3_: ;
3868 	{
3869 		result = len__ast_3198(n);
3870 	}
3871 	LA1_: ;
3872 	return result;
3873 }
N_NIMCALL(void,fillBodyObj__liftdestructors_252)3874 N_LIB_PRIVATE N_NIMCALL(void, fillBodyObj__liftdestructors_252)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y, NIM_BOOL enforceDefaultOp) {
3875 {	switch ((*n).kind) {
3876 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3):
3877 	{
3878 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* f;
3879 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
3880 		{
3881 			if (!!(((*c).filterDiscriminator == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA4_;
3882 			goto BeforeRet_;
3883 		}
3884 		LA4_: ;
3885 		f = (*n)._kind_4.sym;
3886 		{
3887 			if (!((*c).kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3))) goto LA8_;
3888 			b = y;
3889 		}
3890 		goto LA6_;
3891 		LA8_: ;
3892 		{
3893 			b = dotField__liftdestructors_96(y, f);
3894 		}
3895 		LA6_: ;
3896 		{
3897 			NIM_BOOL T13_;
3898 			NIM_BOOL T14_;
3899 			NIM_BOOL T15_;
3900 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T17_;
3901 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T22_;
3902 			T13_ = (NIM_BOOL)0;
3903 			T14_ = (NIM_BOOL)0;
3904 			T15_ = (NIM_BOOL)0;
3905 			T15_ = (((*f).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 41))&63U)))!=0);
3906 			if (!(T15_)) goto LA16_;
3907 			T17_ = NIM_NIL;
3908 			T17_ = skipTypes__ast_3735((*f).typ, TM__qGuGEzVTCUVhav67HrOxdQ_6);
3909 			T15_ = ((*T17_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22) || (*T17_).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25));
3910 			LA16_: ;
3911 			T14_ = T15_;
3912 			if (!(T14_)) goto LA18_;
3913 			T14_ = ((176 &((NU16)1<<((NU)((*(*(*c).g).config).selectedGC)&15U)))!=0);
3914 			LA18_: ;
3915 			T13_ = T14_;
3916 			if (T13_) goto LA19_;
3917 			T13_ = enforceDefaultOp;
3918 			LA19_: ;
3919 			if (!T13_) goto LA20_;
3920 			T22_ = NIM_NIL;
3921 			T22_ = dotField__liftdestructors_96(x, f);
3922 			defaultOp__liftdestructors_134(c, (*f).typ, body, T22_, b);
3923 		}
3924 		goto LA11_;
3925 		LA20_: ;
3926 		{
3927 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
3928 			T24_ = NIM_NIL;
3929 			T24_ = dotField__liftdestructors_96(x, f);
3930 			fillBody__liftdestructors_34(c, (*f).typ, body, T24_, b);
3931 		}
3932 		LA11_: ;
3933 	}
3934 	break;
3935 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 23):
3936 	{
3937 	}
3938 	break;
3939 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 139):
3940 	{
3941 		NIM_BOOL localEnforceDefaultOp;
3942 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* oldfilterDiscriminator;
3943 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* caseStmt;
3944 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* access;
3945 		NI emptyBranches;
3946 		localEnforceDefaultOp = enforceDefaultOp;
3947 		{
3948 			tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg prevKind;
3949 			if (!((*c).kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2))) goto LA29_;
3950 			prevKind = (*c).kind;
3951 			(*c).kind = ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0);
3952 			fillBodyObj__liftdestructors_252(c, n, body, x, y, NIM_FALSE);
3953 			(*c).kind = prevKind;
3954 			localEnforceDefaultOp = NIM_TRUE;
3955 		}
3956 		LA29_: ;
3957 		{
3958 			if (!!(((*c).kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0)))) goto LA33_;
3959 			fillBodyObj__liftdestructors_252(c, (*n)._kind_6.sons->data[((NI) 0)], body, x, y, NIM_FALSE);
3960 		}
3961 		LA33_: ;
3962 		oldfilterDiscriminator = (*c).filterDiscriminator;
3963 		{
3964 			if (!((*c).filterDiscriminator == (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym)) goto LA37_;
3965 			unsureAsgnRef((void**) (&(*c).filterDiscriminator), ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
3966 		}
3967 		LA37_: ;
3968 		caseStmt = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 97), (*c).info);
3969 		access = dotField__liftdestructors_96(x, (*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym);
3970 		add__ast_4797(caseStmt, access);
3971 		emptyBranches = ((NI) 0);
3972 		{
3973 			NI i;
3974 			NI colontmp_;
3975 			NI i_2;
3976 			i = (NI)0;
3977 			colontmp_ = (NI)0;
3978 			colontmp_ = len__ast_3198(n);
3979 			i_2 = ((NI) 1);
3980 			{
3981 				while (1) {
3982 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* branch;
3983 					NI T42_;
3984 					tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T43_;
3985 					NI T44_;
3986 					if (!(i_2 < colontmp_)) goto LA41;
3987 					i = i_2;
3988 					branch = copyTree__ast_4431((*n)._kind_6.sons->data[i]);
3989 					T42_ = (NI)0;
3990 					T42_ = len__ast_3198(branch);
3991 					asgnRef((void**) (&(*branch)._kind_6.sons->data[(NI)(T42_ - ((NI) 1))]), newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 115), (*c).info));
3992 					T43_ = NIM_NIL;
3993 					T43_ = lastSon__ast_4832((*n)._kind_6.sons->data[i]);
3994 					T44_ = (NI)0;
3995 					T44_ = len__ast_3198(branch);
3996 					fillBodyObj__liftdestructors_252(c, T43_, (*branch)._kind_6.sons->data[(NI)(T44_ - ((NI) 1))], x, y, localEnforceDefaultOp);
3997 					{
3998 						NI T47_;
3999 						NI T48_;
4000 						T47_ = (NI)0;
4001 						T47_ = len__ast_3198(branch);
4002 						T48_ = (NI)0;
4003 						T48_ = len__ast_3198((*branch)._kind_6.sons->data[(NI)(T47_ - ((NI) 1))]);
4004 						if (!(T48_ == ((NI) 0))) goto LA49_;
4005 						emptyBranches += ((NI) 1);
4006 					}
4007 					LA49_: ;
4008 					add__ast_4797(caseStmt, branch);
4009 					i_2 += ((NI) 1);
4010 				} LA41: ;
4011 			}
4012 		}
4013 		{
4014 			NI T53_;
4015 			T53_ = (NI)0;
4016 			T53_ = len__ast_3198(n);
4017 			if (!!((emptyBranches == (NI)(T53_ - ((NI) 1))))) goto LA54_;
4018 			add__ast_4797(body, caseStmt);
4019 		}
4020 		LA54_: ;
4021 		{
4022 			if (!((*c).kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))) goto LA58_;
4023 			fillBodyObj__liftdestructors_252(c, (*n)._kind_6.sons->data[((NI) 0)], body, x, y, NIM_FALSE);
4024 		}
4025 		LA58_: ;
4026 		unsureAsgnRef((void**) (&(*c).filterDiscriminator), oldfilterDiscriminator);
4027 	}
4028 	break;
4029 	case ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 138):
4030 	{
4031 		{
4032 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* t;
4033 			t = NIM_NIL;
4034 			{
4035 				NI i_3;
4036 				NI colontmp__2;
4037 				NI i_4;
4038 				i_3 = (NI)0;
4039 				colontmp__2 = (NI)0;
4040 				colontmp__2 = safeLen__ast_3191(n);
4041 				i_4 = ((NI) 0);
4042 				{
4043 					while (1) {
4044 						if (!(i_4 < colontmp__2)) goto LA64;
4045 						i_3 = i_4;
4046 						t = (*n)._kind_6.sons->data[i_3];
4047 						fillBodyObj__liftdestructors_252(c, t, body, x, y, enforceDefaultOp);
4048 						i_4 += ((NI) 1);
4049 					} LA64: ;
4050 				}
4051 			}
4052 		}
4053 	}
4054 	break;
4055 	default:
4056 	{
4057 		illFormedAstLocal__semdata_1074(n, (*(*c).g).config);
4058 	}
4059 	break;
4060 	}
4061 	}BeforeRet_: ;
4062 }
N_NIMCALL(void,fillBodyObjTImpl__liftdestructors_360)4063 N_LIB_PRIVATE N_NIMCALL(void, fillBodyObjTImpl__liftdestructors_360)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
4064 	{
4065 		NIM_BOOL T3_;
4066 		NI T4_;
4067 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T8_;
4068 		T3_ = (NIM_BOOL)0;
4069 		T4_ = (NI)0;
4070 		T4_ = len__ast_4002(t);
4071 		T3_ = (((NI) 0) < T4_);
4072 		if (!(T3_)) goto LA5_;
4073 		T3_ = !(((*t).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
4074 		LA5_: ;
4075 		if (!T3_) goto LA6_;
4076 		T8_ = NIM_NIL;
4077 		T8_ = skipTypes__ast_3735((*t).sons->data[((NI) 0)], TM__qGuGEzVTCUVhav67HrOxdQ_42);
4078 		fillBody__liftdestructors_34(c, T8_, body, x, y);
4079 	}
4080 	LA6_: ;
4081 	fillBodyObj__liftdestructors_252(c, (*t).n, body, x, y, NIM_FALSE);
4082 }
N_NIMCALL(void,fillBodyObjT__liftdestructors_375)4083 N_LIB_PRIVATE N_NIMCALL(void, fillBodyObjT__liftdestructors_375)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
4084 	NIM_BOOL hasCase;
4085 	tyObject_TType__facALICuu8zUj0hjvbTLFg* obj;
4086 	hasCase = isCaseObj__trees_158((*t).n);
4087 	obj = t;
4088 	{
4089 		while (1) {
4090 			NIM_BOOL T3_;
4091 			NI T4_;
4092 			NIM_BOOL T6_;
4093 			T3_ = (NIM_BOOL)0;
4094 			T4_ = (NI)0;
4095 			T4_ = len__ast_4002(obj);
4096 			T3_ = (((NI) 0) < T4_);
4097 			if (!(T3_)) goto LA5_;
4098 			T3_ = !(((*obj).sons->data[((NI) 0)] == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)));
4099 			LA5_: ;
4100 			if (!T3_) goto LA2;
4101 			obj = skipTypes__ast_3735((*obj).sons->data[((NI) 0)], TM__qGuGEzVTCUVhav67HrOxdQ_42);
4102 			T6_ = (NIM_BOOL)0;
4103 			T6_ = hasCase;
4104 			if (T6_) goto LA7_;
4105 			T6_ = isCaseObj__trees_158((*obj).n);
4106 			LA7_: ;
4107 			hasCase = T6_;
4108 		} LA2: ;
4109 	}
4110 	{
4111 		NIM_BOOL T10_;
4112 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* dummy;
4113 		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T14_;
4114 		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T15_;
4115 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* temp;
4116 		tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T30_;
4117 		tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T31_;
4118 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
4119 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* blob;
4120 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* wasMovedCall;
4121 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T32_;
4122 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T33_;
4123 		tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg prevKind;
4124 		T10_ = (NIM_BOOL)0;
4125 		T10_ = hasCase;
4126 		if (!(T10_)) goto LA11_;
4127 		T10_ = ((18 &((NU8)1<<((NU)((*c).kind)&7U)))!=0);
4128 		LA11_: ;
4129 		if (!T10_) goto LA12_;
4130 		T14_ = NIM_NIL;
4131 		T14_ = getIdent__idents_143((*(*c).g).cache, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_14));
4132 		T15_ = nextSymId__ast_3132((*c).idgen);
4133 		dummy = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5), T14_, T15_, (*c).fn, (*c).info, 0);
4134 		asgnRef((void**) (&(*dummy).typ), (*y).typ);
4135 		{
4136 			NIM_BOOL T18_;
4137 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* cond;
4138 			tyArray__T6RKPw8xfAeNaoei9aZGzXg T21_;
4139 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T22_;
4140 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T23_;
4141 			tyArray__jlWPjgtbdjE069arIWHC9c9bg T24_;
4142 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T25_;
4143 			tyArray__jlWPjgtbdjE069arIWHC9c9bg T26_;
4144 			tyArray__jlWPjgtbdjE069arIWHC9c9bg T27_;
4145 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T28_;
4146 			tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T29_;
4147 			T18_ = (NIM_BOOL)0;
4148 			T18_ = ccgIntroducedPtr__ccgutils_153((*(*c).g).config, dummy, (*y).typ);
4149 			if (!T18_) goto LA19_;
4150 			nimZeroMem((void*)T21_, sizeof(tyArray__T6RKPw8xfAeNaoei9aZGzXg));
4151 			T22_ = NIM_NIL;
4152 			T22_ = getSysMagic__magicsys_29((*c).g, (*c).info, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_43), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 87));
4153 			T21_[0] = newSymNode__ast_3716(T22_);
4154 			T23_ = NIM_NIL;
4155 			T23_ = makePtrType__semdata_737((*c).fn, (*x).typ, (*c).idgen);
4156 			nimZeroMem((void*)T24_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4157 			T24_[0] = x;
4158 			T21_[1] = newTreeIT__ast_3431(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63), (*c).info, T23_, T24_, 1);
4159 			T25_ = NIM_NIL;
4160 			T25_ = makePtrType__semdata_737((*c).fn, (*y).typ, (*c).idgen);
4161 			nimZeroMem((void*)T26_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4162 			T26_[0] = y;
4163 			T21_[2] = newTreeIT__ast_3431(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63), (*c).info, T25_, T26_, 1);
4164 			cond = newTree__ast_3392(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), T21_, 3);
4165 			asgnRef((void**) (&(*cond).typ), getSysType__magicsys_60((*c).g, (*x).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1)));
4166 			nimZeroMem((void*)T27_, sizeof(tyArray__jlWPjgtbdjE069arIWHC9c9bg));
4167 			T27_[0] = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 1), (*c).info);
4168 			T28_ = NIM_NIL;
4169 			T28_ = newTreeI__ast_3420(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 109), (*c).info, T27_, 1);
4170 			T29_ = NIM_NIL;
4171 			T29_ = genIf__liftdestructors_183(c, cond, T28_);
4172 			add__ast_4797(body, T29_);
4173 		}
4174 		LA19_: ;
4175 		T30_ = NIM_NIL;
4176 		T30_ = getIdent__idents_143((*(*c).g).cache, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_14));
4177 		T31_ = nextSymId__ast_3132((*c).idgen);
4178 		temp = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 5), T30_, T31_, (*c).fn, (*c).info, 0);
4179 		asgnRef((void**) (&(*temp).typ), (*x).typ);
4180 		(*temp).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 2)) & 63);
4181 		v = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), (*c).info);
4182 		blob = newSymNode__ast_3716(temp);
4183 		addVar__lowerings_75(v, blob, x);
4184 		add__ast_4797(body, v);
4185 		wasMovedCall = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27), (*c).info);
4186 		T32_ = NIM_NIL;
4187 		T32_ = createMagic__modulegraphs_9008((*c).g, (*c).idgen, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_20), ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 149));
4188 		T33_ = NIM_NIL;
4189 		T33_ = newSymNode__ast_3716(T32_);
4190 		add__ast_4797(wasMovedCall, T33_);
4191 		add__ast_4797(wasMovedCall, x);
4192 		add__ast_4797(body, wasMovedCall);
4193 		fillBodyObjTImpl__liftdestructors_360(c, t, body, x, y);
4194 		prevKind = (*c).kind;
4195 		(*c).kind = ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0);
4196 		fillBodyObjTImpl__liftdestructors_360(c, t, body, blob, y);
4197 		(*c).kind = prevKind;
4198 	}
4199 	goto LA8_;
4200 	LA12_: ;
4201 	{
4202 		fillBodyObjTImpl__liftdestructors_360(c, t, body, x, y);
4203 	}
4204 	LA8_: ;
4205 }
N_NIMCALL(void,fillBodyTup__liftdestructors_73)4206 N_LIB_PRIVATE N_NIMCALL(void, fillBodyTup__liftdestructors_73)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
4207 	{
4208 		NI i;
4209 		NI colontmp_;
4210 		NI i_2;
4211 		i = (NI)0;
4212 		colontmp_ = (NI)0;
4213 		colontmp_ = len__ast_4002(t);
4214 		i_2 = ((NI) 0);
4215 		{
4216 			while (1) {
4217 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* lit;
4218 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
4219 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
4220 				if (!(i_2 < colontmp_)) goto LA3;
4221 				i = i_2;
4222 				lit = newIntLit__lowerings_695((*c).g, (*x).info, ((NI64) (i)));
4223 				{
4224 					if (!((*c).kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3))) goto LA6_;
4225 					b = y;
4226 				}
4227 				goto LA4_;
4228 				LA6_: ;
4229 				{
4230 					b = at__liftdestructors_53(y, lit, (*t).sons->data[i]);
4231 				}
4232 				LA4_: ;
4233 				T9_ = NIM_NIL;
4234 				T9_ = at__liftdestructors_53(x, lit, (*t).sons->data[i]);
4235 				fillBody__liftdestructors_34(c, (*t).sons->data[i], body, T9_, b);
4236 				i_2 += ((NI) 1);
4237 			} LA3: ;
4238 		}
4239 	}
4240 }
N_NIMCALL(void,fillBody__liftdestructors_34)4241 N_LIB_PRIVATE N_NIMCALL(void, fillBody__liftdestructors_34)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
4242 {	switch ((*t).kind) {
4243 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0):
4244 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 3):
4245 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 63):
4246 	{
4247 	}
4248 	break;
4249 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26):
4250 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 19):
4251 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 1):
4252 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 2):
4253 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 14):
4254 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31) ... ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 44):
4255 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 29):
4256 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 21):
4257 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 49):
4258 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 23):
4259 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 47):
4260 	{
4261 		defaultOp__liftdestructors_134(c, t, body, x, y);
4262 	}
4263 	break;
4264 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
4265 	{
4266 		{
4267 			if (!((48 &((NU16)1<<((NU)((*(*(*c).g).config).selectedGC)&15U)))!=0)) goto LA6_;
4268 			atomicRefOp__liftdestructors_1376(c, t, body, x, y);
4269 		}
4270 		goto LA4_;
4271 		LA6_: ;
4272 		{
4273 			NIM_BOOL T9_;
4274 			T9_ = (NIM_BOOL)0;
4275 			T9_ = (((*(*(*c).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0);
4276 			if (!(T9_)) goto LA10_;
4277 			T9_ = (((*(*(*c).g).config).options &((NU32)1<<((NU)(((tyEnum_TOption__WspMeQySXNP2XoTWR5MTgg) 6))&31U)))!=0);
4278 			LA10_: ;
4279 			if (!T9_) goto LA11_;
4280 			weakrefOp__liftdestructors_1540(c, t, body, x, y);
4281 		}
4282 		goto LA4_;
4283 		LA11_: ;
4284 		{
4285 			defaultOp__liftdestructors_134(c, t, body, x, y);
4286 		}
4287 		LA4_: ;
4288 	}
4289 	break;
4290 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
4291 	{
4292 		{
4293 			if (!((*t).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9))) goto LA17_;
4294 			{
4295 				if (!((48 &((NU16)1<<((NU)((*(*(*c).g).config).selectedGC)&15U)))!=0)) goto LA21_;
4296 				atomicClosureOp__liftdestructors_1464(c, t, body, x, y);
4297 			}
4298 			goto LA19_;
4299 			LA21_: ;
4300 			{
4301 				closureOp__liftdestructors_1655(c, t, body, x, y);
4302 			}
4303 			LA19_: ;
4304 		}
4305 		goto LA15_;
4306 		LA17_: ;
4307 		{
4308 			defaultOp__liftdestructors_134(c, t, body, x, y);
4309 		}
4310 		LA15_: ;
4311 	}
4312 	break;
4313 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 45):
4314 	{
4315 		tyObject_TType__facALICuu8zUj0hjvbTLFg* base;
4316 		base = skipTypes__ast_3735(t, TM__qGuGEzVTCUVhav67HrOxdQ_37);
4317 		{
4318 			if (!(((*(*(*c).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 42))&63U)))!=0)) goto LA28_;
4319 			switch ((*base).kind) {
4320 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 22):
4321 			{
4322 				ownedRefOp__liftdestructors_1620(c, base, body, x, y);
4323 				goto BeforeRet_;
4324 			}
4325 			break;
4326 			case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 25):
4327 			{
4328 				{
4329 					if (!((*base).callConv == ((tyEnum_TCallingConvention__yjAJ8w0h1PBaSwSGJ3P7IA) 9))) goto LA34_;
4330 					ownedClosureOp__liftdestructors_1722(c, base, body, x, y);
4331 					goto BeforeRet_;
4332 				}
4333 				LA34_: ;
4334 			}
4335 			break;
4336 			default:
4337 			{
4338 			}
4339 			break;
4340 			}
4341 		}
4342 		LA28_: ;
4343 		defaultOp__liftdestructors_134(c, base, body, x, y);
4344 	}
4345 	break;
4346 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 16):
4347 	{
4348 		{
4349 			NIM_BOOL T40_;
4350 			T40_ = (NIM_BOOL)0;
4351 			T40_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31))&63U)))!=0);
4352 			if (T40_) goto LA41_;
4353 			T40_ = useNoGc__liftdestructors_546((&(*c)), t);
4354 			LA41_: ;
4355 			if (!T40_) goto LA42_;
4356 			forallElements__liftdestructors_823(c, t, body, x, y);
4357 		}
4358 		goto LA38_;
4359 		LA42_: ;
4360 		{
4361 			defaultOp__liftdestructors_134(c, t, body, x, y);
4362 		}
4363 		LA38_: ;
4364 	}
4365 	break;
4366 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
4367 	{
4368 		{
4369 			NIM_BOOL T48_;
4370 			T48_ = (NIM_BOOL)0;
4371 			T48_ = useNoGc__liftdestructors_546((&(*c)), t);
4372 			if (!T48_) goto LA49_;
4373 			useSeqOrStrOp__liftdestructors_894(c, t, body, x, y);
4374 		}
4375 		goto LA46_;
4376 		LA49_: ;
4377 		{
4378 			NIM_BOOL T54_;
4379 			if (!(((*(*(*c).g).config).globalOptions &((NU64)1<<((NU)(((tyEnum_TGlobalOption__RAfAEZqjnKMDumgyKKc1qw) 40))&63U)))!=0)) goto LA52_;
4380 			T54_ = (NIM_BOOL)0;
4381 			T54_ = considerUserDefinedOp__liftdestructors_710(c, t, body, x, y);
4382 			(void)(T54_);
4383 		}
4384 		goto LA46_;
4385 		LA52_: ;
4386 		{
4387 			if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31))&63U)))!=0)) goto LA56_;
4388 			{
4389 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T62_;
4390 				if (!((22 &((NU8)1<<((NU)((*c).kind)&7U)))!=0)) goto LA60_;
4391 				T62_ = NIM_NIL;
4392 				T62_ = newSeqCall__liftdestructors_795(c, x, y);
4393 				add__ast_4797(body, T62_);
4394 			}
4395 			LA60_: ;
4396 			forallElements__liftdestructors_823(c, t, body, x, y);
4397 		}
4398 		goto LA46_;
4399 		LA56_: ;
4400 		{
4401 			defaultOp__liftdestructors_134(c, t, body, x, y);
4402 		}
4403 		LA46_: ;
4404 	}
4405 	break;
4406 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
4407 	{
4408 		{
4409 			NIM_BOOL T67_;
4410 			T67_ = (NIM_BOOL)0;
4411 			T67_ = useNoGc__liftdestructors_546((&(*c)), t);
4412 			if (!T67_) goto LA68_;
4413 			useSeqOrStrOp__liftdestructors_894(c, t, body, x, y);
4414 		}
4415 		goto LA65_;
4416 		LA68_: ;
4417 		{
4418 			NIM_BOOL T73_;
4419 			if (!(((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31))&63U)))!=0)) goto LA71_;
4420 			T73_ = (NIM_BOOL)0;
4421 			T73_ = considerUserDefinedOp__liftdestructors_710(c, t, body, x, y);
4422 			(void)(T73_);
4423 		}
4424 		goto LA65_;
4425 		LA71_: ;
4426 		{
4427 			defaultOp__liftdestructors_134(c, t, body, x, y);
4428 		}
4429 		LA65_: ;
4430 	}
4431 	break;
4432 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17):
4433 	{
4434 		{
4435 			NIM_BOOL T78_;
4436 			T78_ = (NIM_BOOL)0;
4437 			T78_ = considerUserDefinedOp__liftdestructors_710(c, t, body, x, y);
4438 			if (!!(T78_)) goto LA79_;
4439 			{
4440 				NIM_BOOL T83_;
4441 				NIM_BOOL T84_;
4442 				tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T89_;
4443 				T83_ = (NIM_BOOL)0;
4444 				T84_ = (NIM_BOOL)0;
4445 				T84_ = ((6 &((NU8)1<<((NU)((*c).kind)&7U)))!=0);
4446 				if (!(T84_)) goto LA85_;
4447 				T84_ = !(((*t).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
4448 				LA85_: ;
4449 				T83_ = T84_;
4450 				if (!(T83_)) goto LA86_;
4451 				T83_ = (((*(*t).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 6))&63U)))!=0);
4452 				LA86_: ;
4453 				if (!T83_) goto LA87_;
4454 				T89_ = NIM_NIL;
4455 				T89_ = newAsgnStmt__liftdestructors_107(x, y);
4456 				add__ast_4797(body, T89_);
4457 			}
4458 			goto LA81_;
4459 			LA87_: ;
4460 			{
4461 				fillBodyObjT__liftdestructors_375(c, t, body, x, y);
4462 			}
4463 			LA81_: ;
4464 		}
4465 		LA79_: ;
4466 	}
4467 	break;
4468 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13):
4469 	{
4470 		{
4471 			NIM_BOOL T94_;
4472 			T94_ = (NIM_BOOL)0;
4473 			T94_ = considerUserDefinedOp__liftdestructors_710(c, t, body, x, y);
4474 			if (!!(T94_)) goto LA95_;
4475 			fillBody__liftdestructors_34(c, (*t).sons->data[((NI) 0)], body, x, y);
4476 		}
4477 		LA95_: ;
4478 	}
4479 	break;
4480 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 18):
4481 	{
4482 		fillBodyTup__liftdestructors_73(c, t, body, x, y);
4483 	}
4484 	break;
4485 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 48):
4486 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 27):
4487 	{
4488 		{
4489 			NIM_BOOL T101_;
4490 			NIM_BOOL T103_;
4491 			T101_ = (NIM_BOOL)0;
4492 			T101_ = ((*c).kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
4493 			if (!(T101_)) goto LA102_;
4494 			T103_ = (NIM_BOOL)0;
4495 			T103_ = (((*t).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31))&63U)))!=0);
4496 			if (T103_) goto LA104_;
4497 			T103_ = useNoGc__liftdestructors_546((&(*c)), t);
4498 			LA104_: ;
4499 			T101_ = T103_;
4500 			LA102_: ;
4501 			if (!T101_) goto LA105_;
4502 			forallElements__liftdestructors_823(c, t, body, x, y);
4503 		}
4504 		goto LA99_;
4505 		LA105_: ;
4506 		{
4507 		}
4508 		LA99_: ;
4509 	}
4510 	break;
4511 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 61):
4512 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 50):
4513 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 51):
4514 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 52):
4515 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 53):
4516 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 54):
4517 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 56):
4518 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 57):
4519 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 58):
4520 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 59):
4521 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 12):
4522 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 10):
4523 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 5):
4524 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 6):
4525 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 7):
4526 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 8):
4527 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 9):
4528 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 30):
4529 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60):
4530 	{
4531 	}
4532 	break;
4533 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 15):
4534 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 20):
4535 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 55):
4536 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 11):
4537 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 4):
4538 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 46):
4539 	{
4540 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T110_;
4541 		T110_ = NIM_NIL;
4542 		T110_ = lastSon__ast_3743(t);
4543 		fillBody__liftdestructors_34(c, T110_, body, x, y);
4544 	}
4545 	break;
4546 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 62):
4547 	case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 64):
4548 	{
4549 		{
4550 			if (!NIM_TRUE) goto LA114_;
4551 			failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_44));
4552 		}
4553 		LA114_: ;
4554 	}
4555 	break;
4556 	}
4557 	}BeforeRet_: ;
4558 }
N_NIMCALL(void,addIncStmt__liftdestructors_782)4559 N_LIB_PRIVATE N_NIMCALL(void, addIncStmt__liftdestructors_782)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* i) {
4560 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* incCall;
4561 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
4562 	incCall = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 29), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_45), i);
4563 	T1_ = NIM_NIL;
4564 	T1_ = newIntLit__lowerings_695((*c).g, (*c).info, IL64(1));
4565 	add__ast_4797(incCall, T1_);
4566 	add__ast_4797(body, incCall);
4567 }
N_NIMCALL(void,forallElements__liftdestructors_823)4568 N_LIB_PRIVATE N_NIMCALL(void, forallElements__liftdestructors_823)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
4569 	NI counterIdx;
4570 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* i;
4571 	tyObject_Int128__9a9axPfb75jdWY25AamJewkA T1_;
4572 	NI64 T2_;
4573 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* whileLoop;
4574 	tyObject_TType__facALICuu8zUj0hjvbTLFg* elemType;
4575 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* b;
4576 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T8_;
4577 	counterIdx = len__ast_3198(body);
4578 	T1_ = firstOrd__types_1353((*(*c).g).config, t);
4579 	T2_ = (NI64)0;
4580 	T2_ = toInt64__int495056_88(T1_);
4581 	i = declareCounter__liftdestructors_752(c, body, T2_);
4582 	whileLoop = genWhileLoop__liftdestructors_171(c, i, x);
4583 	elemType = lastSon__ast_3743(t);
4584 	{
4585 		if (!((*c).kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3))) goto LA5_;
4586 		b = y;
4587 	}
4588 	goto LA3_;
4589 	LA5_: ;
4590 	{
4591 		b = at__liftdestructors_53(y, i, elemType);
4592 	}
4593 	LA3_: ;
4594 	T8_ = NIM_NIL;
4595 	T8_ = at__liftdestructors_53(x, i, elemType);
4596 	fillBody__liftdestructors_34(c, elemType, (*whileLoop)._kind_6.sons->data[((NI) 1)], T8_, b);
4597 	{
4598 		NI T11_;
4599 		T11_ = (NI)0;
4600 		T11_ = len__ast_3198((*whileLoop)._kind_6.sons->data[((NI) 1)]);
4601 		if (!(((NI) 0) < T11_)) goto LA12_;
4602 		addIncStmt__liftdestructors_782(c, (*whileLoop)._kind_6.sons->data[((NI) 1)], i);
4603 		add__ast_4797(body, whileLoop);
4604 	}
4605 	goto LA9_;
4606 	LA12_: ;
4607 	{
4608 		asgnRef((void**) (&(*body)._kind_6.sons), (tySequence__ehmV9bTklH2Gt9cXHV9c0HLeQ*) setLengthSeqV2(&((*body)._kind_6.sons)->Sup, (&NTItnodeseq__ehmV9bTklH2Gt9cXHV9c0HLeQ_), ((NI) (counterIdx))));
4609 	}
4610 	LA9_: ;
4611 }
N_NIMCALL(void,fillSeqOp__liftdestructors_858)4612 N_LIB_PRIVATE N_NIMCALL(void, fillSeqOp__liftdestructors_858)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
4613 	switch ((*c).kind) {
4614 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1):
4615 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4):
4616 	{
4617 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
4618 		T2_ = NIM_NIL;
4619 		T2_ = setLenSeqCall__liftdestructors_815(c, t, x, y);
4620 		add__ast_4797(body, T2_);
4621 		forallElements__liftdestructors_823(c, t, body, x, y);
4622 	}
4623 	break;
4624 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2):
4625 	{
4626 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* moveCall;
4627 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T9_;
4628 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T10_;
4629 		moveCall = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 148), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_38), x);
4630 		add__ast_4797(moveCall, y);
4631 		{
4632 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T6_;
4633 			T6_ = NIM_NIL;
4634 			T6_ = getAttachedOp__modulegraphs_4011((*c).g, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
4635 			if (!!(!((T6_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))))) goto LA7_;
4636 			failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_46));
4637 		}
4638 		LA7_: ;
4639 		T9_ = NIM_NIL;
4640 		T9_ = getAttachedOp__modulegraphs_4011((*c).g, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
4641 		T10_ = NIM_NIL;
4642 		T10_ = destructorCall__liftdestructors_233(c, T9_, x);
4643 		add__ast_4797(moveCall, T10_);
4644 		add__ast_4797(body, moveCall);
4645 	}
4646 	break;
4647 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0):
4648 	{
4649 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T12_;
4650 		forallElements__liftdestructors_823(c, t, body, x, y);
4651 		T12_ = NIM_NIL;
4652 		T12_ = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 150), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_47), x);
4653 		add__ast_4797(body, T12_);
4654 	}
4655 	break;
4656 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3):
4657 	{
4658 		{
4659 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T16_;
4660 			NIM_BOOL T17_;
4661 			T16_ = NIM_NIL;
4662 			T16_ = elemType__types_263(t);
4663 			T17_ = (NIM_BOOL)0;
4664 			T17_ = canFormAcycle__types_762(T16_);
4665 			if (!T17_) goto LA18_;
4666 			forallElements__liftdestructors_823(c, t, body, x, y);
4667 		}
4668 		LA18_: ;
4669 	}
4670 	break;
4671 	}
4672 }
N_NIMCALL(void,fillStrOp__liftdestructors_1330)4673 N_LIB_PRIVATE N_NIMCALL(void, fillStrOp__liftdestructors_1330)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
4674 	switch ((*c).kind) {
4675 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 1):
4676 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 4):
4677 	{
4678 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
4679 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
4680 		T2_ = NIM_NIL;
4681 		T2_ = genAddr__liftdestructors_158(c, x);
4682 		T3_ = NIM_NIL;
4683 		T3_ = callCodegenProc__lowerings_635((*c).g, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_48), (*c).info, T2_, y, ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL), ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL));
4684 		add__ast_4797(body, T3_);
4685 	}
4686 	break;
4687 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2):
4688 	{
4689 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* moveCall;
4690 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T10_;
4691 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T11_;
4692 		moveCall = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 148), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_38), x);
4693 		add__ast_4797(moveCall, y);
4694 		{
4695 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T7_;
4696 			T7_ = NIM_NIL;
4697 			T7_ = getAttachedOp__modulegraphs_4011((*c).g, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
4698 			if (!!(!((T7_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))))) goto LA8_;
4699 			failedAssertImpl__systemZassertions_56(((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_49));
4700 		}
4701 		LA8_: ;
4702 		T10_ = NIM_NIL;
4703 		T10_ = getAttachedOp__modulegraphs_4011((*c).g, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
4704 		T11_ = NIM_NIL;
4705 		T11_ = destructorCall__liftdestructors_233(c, T10_, x);
4706 		add__ast_4797(moveCall, T11_);
4707 		add__ast_4797(body, moveCall);
4708 	}
4709 	break;
4710 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0):
4711 	{
4712 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T13_;
4713 		T13_ = NIM_NIL;
4714 		T13_ = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 150), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_47), x);
4715 		add__ast_4797(body, T13_);
4716 	}
4717 	break;
4718 	case ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3):
4719 	{
4720 	}
4721 	break;
4722 	}
4723 }
N_INLINE(NIM_BOOL,lacksMTypeField__types_4105)4724 static N_INLINE(NIM_BOOL, lacksMTypeField__types_4105)(tyObject_TType__facALICuu8zUj0hjvbTLFg* typ) {
4725 	NIM_BOOL result;
4726 	NIM_BOOL T1_;
4727 	NIM_BOOL T2_;
4728 	result = (NIM_BOOL)0;
4729 	T1_ = (NIM_BOOL)0;
4730 	T2_ = (NIM_BOOL)0;
4731 	T2_ = !(((*typ).sym == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
4732 	if (!(T2_)) goto LA3_;
4733 	T2_ = (((*(*typ).sym).flags &((NU64)1<<((NU)(((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 11))&63U)))!=0);
4734 	LA3_: ;
4735 	T1_ = T2_;
4736 	if (T1_) goto LA4_;
4737 	T1_ = (((*typ).flags &((NU64)1<<((NU)(((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 2))&63U)))!=0);
4738 	LA4_: ;
4739 	result = T1_;
4740 	return result;
4741 }
N_NIMCALL(void,genTypeFieldCopy__liftdestructors_1915)4742 N_LIB_PRIVATE N_NIMCALL(void, genTypeFieldCopy__liftdestructors_1915)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* body, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* y) {
4743 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* xx;
4744 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* yy;
4745 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T1_;
4746 	xx = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 157), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_50), x);
4747 	yy = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 157), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_50), y);
4748 	asgnRef((void**) (&(*xx).typ), getSysType__magicsys_60((*c).g, (*c).info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26)));
4749 	asgnRef((void**) (&(*yy).typ), (*xx).typ);
4750 	T1_ = NIM_NIL;
4751 	T1_ = newAsgnStmt__liftdestructors_107(xx, yy);
4752 	add__ast_4797(body, T1_);
4753 }
N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ *,produceSym__liftdestructors_40)4754 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, produceSym__liftdestructors_40)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
4755 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
4756 	tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA a;
4757 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* dest;
4758 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* d;
4759 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T9_;
4760 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* src;
4761 {	result = NIM_NIL;
4762 	{
4763 		if (!((*typ).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 13))) goto LA3_;
4764 		result = produceSymDistinctType__liftdestructors_1841(g, c, typ, kind, info, idgen);
4765 		goto BeforeRet_;
4766 	}
4767 	LA3_: ;
4768 	result = getAttachedOp__modulegraphs_4011(g, typ, kind);
4769 	{
4770 		if (!(result == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA7_;
4771 		result = symPrototype__liftdestructors_1862(g, typ, (*typ).owner, kind, info, idgen);
4772 	}
4773 	LA7_: ;
4774 	nimZeroMem((void*)(&a), sizeof(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA));
4775 	nimZeroMem((void*)(&a), sizeof(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA));
4776 	a.info = info;
4777 	a.g = g;
4778 	a.kind = kind;
4779 	a.c = c;
4780 	a.asgnForType = typ;
4781 	a.idgen = idgen;
4782 	a.fn = result;
4783 	dest = (*(*(*(*result).typ).n)._kind_6.sons->data[((NI) 1)])._kind_4.sym;
4784 	T9_ = NIM_NIL;
4785 	T9_ = newSymNode__ast_3716(dest);
4786 	d = newDeref__lowerings_11(T9_);
4787 	{
4788 		tyObject_TType__facALICuu8zUj0hjvbTLFg* T14_;
4789 		if (!(kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0))) goto LA12_;
4790 		T14_ = NIM_NIL;
4791 		T14_ = getSysType__magicsys_60(g, info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26));
4792 		src = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3), info, T14_);
4793 	}
4794 	goto LA10_;
4795 	LA12_: ;
4796 	{
4797 		src = newSymNode__ast_3716((*(*(*(*result).typ).n)._kind_6.sons->data[((NI) 2)])._kind_4.sym);
4798 	}
4799 	LA10_: ;
4800 	setAttachedOpPartial__modulegraphs_5577(g, ((NI) ((*idgen).module)), typ, kind, result);
4801 	{
4802 		NIM_BOOL T18_;
4803 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T22_;
4804 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T23_;
4805 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T24_;
4806 		T18_ = (NIM_BOOL)0;
4807 		T18_ = (kind == ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2));
4808 		if (!(T18_)) goto LA19_;
4809 		T18_ = destructorOverriden__liftdestructors_60(g, typ);
4810 		LA19_: ;
4811 		if (!T18_) goto LA20_;
4812 		(*dest).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 41)) & 63);
4813 		T22_ = NIM_NIL;
4814 		T22_ = getAttachedOp__modulegraphs_4011(g, typ, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
4815 		T23_ = NIM_NIL;
4816 		T23_ = newOpCall__liftdestructors_516((&a), T22_, (*d)._kind_6.sons->data[((NI) 0)]);
4817 		add__ast_4797((*(*result).ast)._kind_6.sons->data[((NI) 6)], T23_);
4818 		T24_ = NIM_NIL;
4819 		T24_ = newAsgnStmt__liftdestructors_107(d, src);
4820 		add__ast_4797((*(*result).ast)._kind_6.sons->data[((NI) 6)], T24_);
4821 	}
4822 	goto LA16_;
4823 	LA20_: ;
4824 	{
4825 		tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag tk;
4826 		tk = (tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag)0;
4827 		{
4828 			tyObject_TType__facALICuu8zUj0hjvbTLFg* T30_;
4829 			if (!((176 &((NU16)1<<((NU)((*(*g).config).selectedGC)&15U)))!=0)) goto LA28_;
4830 			T30_ = NIM_NIL;
4831 			T30_ = skipTypes__ast_3735(typ, TM__qGuGEzVTCUVhav67HrOxdQ_8);
4832 			tk = (*T30_).kind;
4833 		}
4834 		goto LA26_;
4835 		LA28_: ;
4836 		{
4837 			tk = ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 0);
4838 		}
4839 		LA26_: ;
4840 		switch (tk) {
4841 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 24):
4842 		{
4843 			fillSeqOp__liftdestructors_858((&a), typ, (*(*result).ast)._kind_6.sons->data[((NI) 6)], d, src);
4844 		}
4845 		break;
4846 		case ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 28):
4847 		{
4848 			fillStrOp__liftdestructors_1330((&a), typ, (*(*result).ast)._kind_6.sons->data[((NI) 6)], d, src);
4849 		}
4850 		break;
4851 		default:
4852 		{
4853 			fillBody__liftdestructors_34((&a), typ, (*(*result).ast)._kind_6.sons->data[((NI) 6)], d, src);
4854 			{
4855 				NIM_BOOL T37_;
4856 				NIM_BOOL T38_;
4857 				NIM_BOOL T41_;
4858 				T37_ = (NIM_BOOL)0;
4859 				T38_ = (NIM_BOOL)0;
4860 				T38_ = (tk == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 17));
4861 				if (!(T38_)) goto LA39_;
4862 				T38_ = ((22 &((NU8)1<<((NU)(a.kind)&7U)))!=0);
4863 				LA39_: ;
4864 				T37_ = T38_;
4865 				if (!(T37_)) goto LA40_;
4866 				T41_ = (NIM_BOOL)0;
4867 				T41_ = lacksMTypeField__types_4105(typ);
4868 				T37_ = !(T41_);
4869 				LA40_: ;
4870 				if (!T37_) goto LA42_;
4871 				genTypeFieldCopy__liftdestructors_1915((&a), typ, (*(*result).ast)._kind_6.sons->data[((NI) 6)], d, src);
4872 			}
4873 			LA42_: ;
4874 		}
4875 		break;
4876 		}
4877 	}
4878 	LA16_: ;
4879 	{
4880 		if (!!(a.canRaise)) goto LA46_;
4881 		(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 43)) & 63);
4882 	}
4883 	LA46_: ;
4884 	completePartialOp__modulegraphs_5629(g, ((NI) ((*idgen).module)), typ, kind, result);
4885 	}BeforeRet_: ;
4886 	return result;
4887 }
N_NIMCALL(void,patchBody__liftdestructors_2038)4888 N_LIB_PRIVATE N_NIMCALL(void, patchBody__liftdestructors_2038)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* n, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
4889 	{
4890 		if (!((*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 27) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 29) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 30) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 31) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 26) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 28) || (*n).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 32))) goto LA3_;
4891 		{
4892 			NIM_BOOL T7_;
4893 			tyObject_TType__facALICuu8zUj0hjvbTLFg* t;
4894 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op;
4895 			T7_ = (NIM_BOOL)0;
4896 			T7_ = ((*(*n)._kind_6.sons->data[((NI) 0)]).kind == ((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3));
4897 			if (!(T7_)) goto LA8_;
4898 			T7_ = ((*(*(*n)._kind_6.sons->data[((NI) 0)])._kind_4.sym).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 150));
4899 			LA8_: ;
4900 			if (!T7_) goto LA9_;
4901 			t = skipTypes__ast_3735((*(*n)._kind_6.sons->data[((NI) 1)]).typ, TM__qGuGEzVTCUVhav67HrOxdQ_51);
4902 			{
4903 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T13_;
4904 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T16_;
4905 				T13_ = NIM_NIL;
4906 				T13_ = getAttachedOp__modulegraphs_4011(g, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
4907 				if (!(T13_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL))) goto LA14_;
4908 				T16_ = NIM_NIL;
4909 				T16_ = produceSym__liftdestructors_40(g, c, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0), info, idgen);
4910 				(void)(T16_);
4911 			}
4912 			LA14_: ;
4913 			op = getAttachedOp__modulegraphs_4011(g, t, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
4914 			{
4915 				if (!!((op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)))) goto LA19_;
4916 				{
4917 					NIM_BOOL T23_;
4918 					T23_ = (NIM_BOOL)0;
4919 					T23_ = isGenericRoutine__ast_4627((*op).ast);
4920 					if (!T23_) goto LA24_;
4921 					internalErrorImpl__msgs_1431((*g).config, info, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_52), TM__qGuGEzVTCUVhav67HrOxdQ_53);
4922 				}
4923 				LA24_: ;
4924 				{
4925 					if (!((*op).magic == ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 150))) goto LA28_;
4926 					internalErrorImpl__msgs_1431((*g).config, info, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_54), TM__qGuGEzVTCUVhav67HrOxdQ_55);
4927 				}
4928 				LA28_: ;
4929 				asgnRef((void**) (&(*n)._kind_6.sons->data[((NI) 0)]), newSymNode__ast_3716(op));
4930 			}
4931 			LA19_: ;
4932 		}
4933 		LA9_: ;
4934 	}
4935 	LA3_: ;
4936 	{
4937 		tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* x;
4938 		x = NIM_NIL;
4939 		{
4940 			NI i;
4941 			NI colontmp_;
4942 			NI i_2;
4943 			i = (NI)0;
4944 			colontmp_ = (NI)0;
4945 			colontmp_ = safeLen__ast_3191(n);
4946 			i_2 = ((NI) 0);
4947 			{
4948 				while (1) {
4949 					if (!(i_2 < colontmp_)) goto LA33;
4950 					i = i_2;
4951 					x = (*n)._kind_6.sons->data[i];
4952 					patchBody__liftdestructors_2038(g, c, x, info, idgen);
4953 					i_2 += ((NI) 1);
4954 				} LA33: ;
4955 			}
4956 		}
4957 	}
4958 }
N_NIMCALL(void,inst__liftdestructors_2075)4959 N_LIB_PRIVATE N_NIMCALL(void, inst__liftdestructors_2075)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* t, tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg kind, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info) {
4960 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* op;
4961 	op = getAttachedOp__modulegraphs_4011(g, t, kind);
4962 	{
4963 		NIM_BOOL T3_;
4964 		NIM_BOOL T4_;
4965 		T3_ = (NIM_BOOL)0;
4966 		T4_ = (NIM_BOOL)0;
4967 		T4_ = !((op == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
4968 		if (!(T4_)) goto LA5_;
4969 		T4_ = !(((*op).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
4970 		LA5_: ;
4971 		T3_ = T4_;
4972 		if (!(T3_)) goto LA6_;
4973 		T3_ = isGenericRoutine__ast_4627((*op).ast);
4974 		LA6_: ;
4975 		if (!T3_) goto LA7_;
4976 		{
4977 			tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA a;
4978 			tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* opInst;
4979 			if (!!(((*t).typeInst == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL)))) goto LA11_;
4980 			nimZeroMem((void*)(&a), sizeof(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA));
4981 			a.info = info;
4982 			a.g = g;
4983 			a.kind = kind;
4984 			a.c = c;
4985 			a.idgen = idgen;
4986 			opInst = instantiateGeneric__liftdestructors_570((&a), op, t, (*t).typeInst);
4987 			{
4988 				if (!!(((*opInst).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)))) goto LA15_;
4989 				patchBody__liftdestructors_2038(g, c, (*opInst).ast, info, a.idgen);
4990 			}
4991 			LA15_: ;
4992 			setAttachedOp__modulegraphs_4407(g, ((NI) ((*idgen).module)), t, kind, opInst);
4993 		}
4994 		goto LA9_;
4995 		LA11_: ;
4996 		{
4997 			liMessage__msgs_1118((*g).config, info, ((tyEnum_TMsgKind__29cbg2fC1z5iM1PAI28kR5w) 14), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_56), ((tyEnum_TErrorHandling__q4fXoCN3Xdcm6SS9cUkWkWw) 0), TM__qGuGEzVTCUVhav67HrOxdQ_57, NIM_FALSE);
4998 		}
4999 		LA9_: ;
5000 	}
5001 	LA7_: ;
5002 }
N_INLINE(NIM_BOOL,isTrival__liftdestructors_2101)5003 static N_INLINE(NIM_BOOL, isTrival__liftdestructors_2101)(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* s) {
5004 	NIM_BOOL result;
5005 	NIM_BOOL T1_;
5006 	NIM_BOOL T3_;
5007 	NI T5_;
5008 	result = (NIM_BOOL)0;
5009 	T1_ = (NIM_BOOL)0;
5010 	T1_ = (s == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL));
5011 	if (T1_) goto LA2_;
5012 	T3_ = (NIM_BOOL)0;
5013 	T3_ = !(((*s).ast == ((tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*) NIM_NIL)));
5014 	if (!(T3_)) goto LA4_;
5015 	T5_ = (NI)0;
5016 	T5_ = len__ast_3198((*(*s).ast)._kind_6.sons->data[((NI) 6)]);
5017 	T3_ = (T5_ == ((NI) 0));
5018 	LA4_: ;
5019 	T1_ = T3_;
5020 	LA2_: ;
5021 	result = T1_;
5022 	return result;
5023 }
N_NIMCALL(void,createTypeBoundOps__liftdestructors_47)5024 N_LIB_PRIVATE N_NIMCALL(void, createTypeBoundOps__liftdestructors_47)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TContext__C9bB2okDBl3OKGUBiY5k5Ug* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* orig, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
5025 	tyObject_TType__facALICuu8zUj0hjvbTLFg* skipped;
5026 	tyArray__qtqsWM5aXmcpMIVmvq3kAA h;
5027 	tyObject_TType__facALICuu8zUj0hjvbTLFg* canon;
5028 	tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg lastAttached;
5029 	tyArray__ghpD42BXWBF9atU69bA3FcvQ generics;
5030 {	{
5031 		NIM_BOOL T3_;
5032 		T3_ = (NIM_BOOL)0;
5033 		T3_ = (orig == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL));
5034 		if (T3_) goto LA4_;
5035 		T3_ = !(((IL64(274880004096) & (*orig).flags) == 0));
5036 		LA4_: ;
5037 		if (!T3_) goto LA5_;
5038 		goto BeforeRet_;
5039 	}
5040 	LA5_: ;
5041 	(*orig).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 38)) & 63);
5042 	skipped = skipTypes__ast_3735(orig, TM__qGuGEzVTCUVhav67HrOxdQ_2);
5043 	{
5044 		NIM_BOOL T9_;
5045 		T9_ = (NIM_BOOL)0;
5046 		T9_ = isEmptyContainer__types_3617(skipped);
5047 		if (T9_) goto LA10_;
5048 		T9_ = ((*skipped).kind == ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 60));
5049 		LA10_: ;
5050 		if (!T9_) goto LA11_;
5051 		goto BeforeRet_;
5052 	}
5053 	LA11_: ;
5054 	nimZeroMem((void*)h, sizeof(tyArray__qtqsWM5aXmcpMIVmvq3kAA));
5055 	hashType__sighashes_462(skipped, 50, h);
5056 	canon = getOrDefault__liftdestructors_976((*g).canonTypes, h);
5057 	{
5058 		if (!(canon == ((tyObject_TType__facALICuu8zUj0hjvbTLFg*) NIM_NIL))) goto LA15_;
5059 		X5BX5Deq___liftdestructors_2260((&(*g).canonTypes), h, skipped);
5060 		canon = skipped;
5061 	}
5062 	LA15_: ;
5063 	{
5064 		if (!((*(*g).config).selectedGC == ((tyEnum_TGCMode__tkz389aDYNd8ykeZszCuBSw) 5))) goto LA19_;
5065 		lastAttached = ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 3);
5066 	}
5067 	goto LA17_;
5068 	LA19_: ;
5069 	{
5070 		lastAttached = ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 2);
5071 	}
5072 	LA17_: ;
5073 	nimZeroMem((void*)generics, sizeof(tyArray__ghpD42BXWBF9atU69bA3FcvQ));
5074 	{
5075 		tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg k;
5076 		NI res;
5077 		k = (tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg)0;
5078 		res = ((NI) 0);
5079 		{
5080 			while (1) {
5081 				tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T25_;
5082 				if (!(res <= ((NI) (lastAttached)))) goto LA24;
5083 				k = ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) (res));
5084 				T25_ = NIM_NIL;
5085 				T25_ = getAttachedOp__modulegraphs_4011(g, canon, k);
5086 				generics[(k)- 0] = !((T25_ == ((tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*) NIM_NIL)));
5087 				{
5088 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T30_;
5089 					if (!!(generics[(k)- 0])) goto LA28_;
5090 					T30_ = NIM_NIL;
5091 					T30_ = symPrototype__liftdestructors_1862(g, canon, (*canon).owner, k, info, idgen);
5092 					setAttachedOp__modulegraphs_4407(g, ((NI) ((*idgen).module)), canon, k, T30_);
5093 				}
5094 				LA28_: ;
5095 				res += ((NI) 1);
5096 			} LA24: ;
5097 		}
5098 	}
5099 	{
5100 		tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg k_2;
5101 		NI res_2;
5102 		k_2 = (tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg)0;
5103 		res_2 = ((NI) 0);
5104 		{
5105 			while (1) {
5106 				if (!(res_2 <= ((NI) (lastAttached)))) goto LA33;
5107 				k_2 = ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) (res_2));
5108 				{
5109 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T38_;
5110 					if (!!(generics[(k_2)- 0])) goto LA36_;
5111 					T38_ = NIM_NIL;
5112 					T38_ = produceSym__liftdestructors_40(g, c, canon, k_2, info, idgen);
5113 					(void)(T38_);
5114 				}
5115 				goto LA34_;
5116 				LA36_: ;
5117 				{
5118 					inst__liftdestructors_2075(g, c, canon, k_2, idgen, info);
5119 				}
5120 				LA34_: ;
5121 				{
5122 					tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T44_;
5123 					if (!!((canon == orig))) goto LA42_;
5124 					T44_ = NIM_NIL;
5125 					T44_ = getAttachedOp__modulegraphs_4011(g, canon, k_2);
5126 					setAttachedOp__modulegraphs_4407(g, ((NI) ((*idgen).module)), orig, k_2, T44_);
5127 				}
5128 				LA42_: ;
5129 				res_2 += ((NI) 1);
5130 			} LA33: ;
5131 		}
5132 	}
5133 	{
5134 		tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* T47_;
5135 		NIM_BOOL T48_;
5136 		T47_ = NIM_NIL;
5137 		T47_ = getAttachedOp__modulegraphs_4011(g, orig, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0));
5138 		T48_ = (NIM_BOOL)0;
5139 		T48_ = isTrival__liftdestructors_2101(T47_);
5140 		if (!!(T48_)) goto LA49_;
5141 		(*orig).flags |= ((NU64)1)<<((((tyEnum_TTypeFlag__x2m5g1NpbmDig4wLT3Ylhw) 31)) & 63);
5142 	}
5143 	LA49_: ;
5144 	}BeforeRet_: ;
5145 }
N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw *,genContainerOf__liftdestructors_188)5146 N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw*, genContainerOf__liftdestructors_188)(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA* c, tyObject_TType__facALICuu8zUj0hjvbTLFg* objType, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* x) {
5147 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* result;
5148 	tyObject_TType__facALICuu8zUj0hjvbTLFg* intType;
5149 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* addrOf;
5150 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T1_;
5151 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T2_;
5152 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
5153 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* castExpr1;
5154 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T4_;
5155 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dotExpr;
5156 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T5_;
5157 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T6_;
5158 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* offsetOf;
5159 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* minusExpr;
5160 	tyObject_TType__facALICuu8zUj0hjvbTLFg* objPtr;
5161 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T7_;
5162 	result = NIM_NIL;
5163 	intType = getSysType__magicsys_60((*c).g, unknownLineInfo__lineinfos_280, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 31));
5164 	T1_ = NIM_NIL;
5165 	T1_ = makePtrType__semdata_737((*x).owner, (*x).typ, (*c).idgen);
5166 	addrOf = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 63), (*c).info, T1_);
5167 	T2_ = NIM_NIL;
5168 	T2_ = newSymNode__ast_3716(x);
5169 	T3_ = NIM_NIL;
5170 	T3_ = newDeref__lowerings_11(T2_);
5171 	add__ast_4797(addrOf, T3_);
5172 	castExpr1 = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61), (*c).info, intType);
5173 	T4_ = NIM_NIL;
5174 	T4_ = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*c).info, intType);
5175 	add__ast_4797(castExpr1, T4_);
5176 	add__ast_4797(castExpr1, addrOf);
5177 	dotExpr = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 45), (*c).info, (*x).typ);
5178 	T5_ = NIM_NIL;
5179 	T5_ = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*c).info, objType);
5180 	add__ast_4797(dotExpr, T5_);
5181 	T6_ = NIM_NIL;
5182 	T6_ = newSymNode__ast_3716(field);
5183 	add__ast_4797(dotExpr, T6_);
5184 	offsetOf = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 12), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_58), dotExpr);
5185 	asgnRef((void**) (&(*offsetOf).typ), intType);
5186 	minusExpr = genBuiltin__liftdestructors_128(c, ((tyEnum_TMagic__shZhZOdbVC5nnFvcXQAImg) 47), ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_59), castExpr1);
5187 	asgnRef((void**) (&(*minusExpr).typ), intType);
5188 	add__ast_4797(minusExpr, offsetOf);
5189 	objPtr = makePtrType__semdata_737((*objType).owner, objType, (*c).idgen);
5190 	result = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 61), (*c).info, objPtr);
5191 	T7_ = NIM_NIL;
5192 	T7_ = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 4), (*c).info, objPtr);
5193 	add__ast_4797(result, T7_);
5194 	add__ast_4797(result, minusExpr);
5195 	return result;
5196 }
N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ *,produceDestructorForDiscriminator__liftdestructors_2002)5197 N_LIB_PRIVATE N_NIMCALL(tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ*, produceDestructorForDiscriminator__liftdestructors_2002)(tyObject_ModuleGraphcolonObjectType___RZI3hCs0FTPYx8StfC81qQ* g, tyObject_TType__facALICuu8zUj0hjvbTLFg* typ, tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* field, tyObject_TLineInfo__WGx4rAexNXnczy1Avn646Q info, tyObject_IdGeneratorcolonObjectType___9a3T65u6nPPLrld0SrEa57Q* idgen) {
5198 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* result;
5199 	tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA a;
5200 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* discrimantDest;
5201 	tyObject_TSym__nnJKJFyjDGi5mnv8jwfTGQ* dst;
5202 	tyObject_TIdent__1LTsGP7bSxg45u9aHcxh6OA* T1_;
5203 	tyObject_ItemId__ozxAxZLHTQ9c3akTzYvt67g T2_;
5204 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* dstSym;
5205 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* d;
5206 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* v;
5207 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* T3_;
5208 	tyObject_TNode__bROa11lyF5vxEN9aYNbHmhw* placeHolder;
5209 	tyObject_TType__facALICuu8zUj0hjvbTLFg* T4_;
5210 	result = NIM_NIL;
5211 	result = symPrototype__liftdestructors_1862(g, (*field).typ, (*typ).owner, ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0), info, idgen);
5212 	nimZeroMem((void*)(&a), sizeof(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA));
5213 	nimZeroMem((void*)(&a), sizeof(tyObject_TLiftCtx__zhHkNYXgHS1edOXSUpWPKA));
5214 	a.info = info;
5215 	a.g = g;
5216 	a.kind = ((tyEnum_TTypeAttachedOp__Rp5P9bWYldQTLkZ7DytmxOg) 0);
5217 	a.asgnForType = typ;
5218 	a.idgen = idgen;
5219 	a.fn = result;
5220 	a.asgnForType = typ;
5221 	a.filterDiscriminator = field;
5222 	a.addMemReset = NIM_TRUE;
5223 	discrimantDest = (*(*(*(*result).typ).n)._kind_6.sons->data[((NI) 1)])._kind_4.sym;
5224 	T1_ = NIM_NIL;
5225 	T1_ = getIdent__idents_143((*g).cache, ((NimStringDesc*) &TM__qGuGEzVTCUVhav67HrOxdQ_3));
5226 	T2_ = nextSymId__ast_3132(idgen);
5227 	dst = newSym__ast_3445(((tyEnum_TSymKind__cNCW9acsSznmEccl1fgQwkw) 8), T1_, T2_, result, info, 0);
5228 	asgnRef((void**) (&(*dst).typ), makePtrType__semdata_737((*typ).owner, typ, idgen));
5229 	dstSym = newSymNode__ast_3716(dst);
5230 	d = newDeref__lowerings_11(dstSym);
5231 	v = newNodeI__ast_3356(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 99), info);
5232 	T3_ = NIM_NIL;
5233 	T3_ = genContainerOf__liftdestructors_188((&a), typ, field, discrimantDest);
5234 	addVar__lowerings_75(v, dstSym, T3_);
5235 	add__ast_4797((*(*result).ast)._kind_6.sons->data[((NI) 6)], v);
5236 	T4_ = NIM_NIL;
5237 	T4_ = getSysType__magicsys_60(g, info, ((tyEnum_TTypeKind__9a3YiReNVD0IJHWFKgXRe9ag) 26));
5238 	placeHolder = newNodeIT__ast_3378(((tyEnum_TNodeKind__G4E4Gxe7oI2Cm03rkiOzQw) 3), info, T4_);
5239 	fillBody__liftdestructors_34((&a), typ, (*(*result).ast)._kind_6.sons->data[((NI) 6)], d, placeHolder);
5240 	{
5241 		if (!!(a.canRaise)) goto LA7_;
5242 		(*result).flags |= ((NU64)1)<<((((tyEnum_TSymFlag__K9ay6LWMat9bUiT9bIbMxpDHw) 43)) & 63);
5243 	}
5244 	LA7_: ;
5245 	return result;
5246 }
5247